顯示具有 Week07 標籤的文章。 顯示所有文章
顯示具有 Week07 標籤的文章。 顯示所有文章

2015年4月16日 星期四

02160651_許酉聖,Week07



#include <GL/glut.h>
#include <stdio.h>
#include <mmsystem.h>//音樂
void display()
{
    glutSolidTeapot(0.3);
    glFlush();
}
void keyboard(unsigned char key, int x, int y)
{
    if(key=='a')
    {
        PlaySound("tarzan2.wav",NULL,SND_ASYNC);
        printf("凹屋凹烏烏烏");//按a建會發出收音並輸出凹屋凹烏烏烏
    }
    if(key=='1') PlaySound("Do.wav", NULL,SND_ASYNC);
     if(key=='2') PlaySound("Re.wav", NULL,SND_ASYNC);
      if(key=='3') PlaySound("Mi.wav", NULL,SND_ASYNC);
       if(key=='4') PlaySound("Fa.wav", NULL,SND_ASYNC);
        if(key=='5') PlaySound("Sol.wav", NULL,SND_ASYNC);
         if(key=='6') PlaySound("La.wav", NULL,SND_ASYNC);
          if(key=='7') PlaySound("Si.wav", NULL,SND_ASYNC);
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("hello");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);

    glutMainLoop();
}

2015年4月9日 星期四

WEEK7.Homework4/9.蔡瑩盈

今天一開始我們做了個視窗
我將它取名為hey~
然後我們加了以下程式碼 : 

#include <GL/glut.h>
#include <stdio.h>
#include <mmsystem.h>

void display()
{
    glutSolidTeapot(0.3);
    glFlush();
}

void keyboard(unsigned char key, int x, int y)
{
    if(key=='a') printf("apple\n");
    if(key=='b') printf("beeeee\n");
}

int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("hey~");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);

    glutMainLoop();
}



加了音效


這個是加了鋼琴的音效
按1234567數字鍵就可以彈鋼琴囉!

使用鍵盤上的上下建移動茶壺
感覺可以應用在遊戲程式上~~

使用滑鼠轉動茶壺

FreeGLUT Test6




●今日嘗試:
          按鍵盤撥放音效!!!
          鍵盤控制上下!!!


#include <GL/glut.h>
#include <stdio.h>
#include <mmsystem.h>

void display(void);
void keyboard(unsigned char, int, int);
void mouse(int, int, int, int);
void motion(int, int);
void special(int key, int x, int y);
float rotX=0,rotY=0,oldX=0,oldY=0,teaX=0,teaY=0;

int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("02160295");
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutSpecialFunc(special);
    glutMouseFunc(mouse);
    glutMotionFunc(motion);
    glutMainLoop();
}

void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(0,teaY, 0);
        glRotatef(rotX,1,0,0);
        glRotatef(rotY,0,1,0);
        glutSolidTeapot(0.5);
    glPopMatrix();
    glFlush();
}

void keyboard(unsigned char key, int x, int y)
{
    if(key=='a') PlaySound("a.wav",NULL,SND_ASYNC), printf("key=a");
    if(key=='1') PlaySound("1_C.wav",NULL,SND_ASYNC), printf("Sound=Do\n");
    if(key=='2') PlaySound("2_D.wav",NULL,SND_ASYNC), printf("Sound=Re\n");
    if(key=='3') PlaySound("3_E.wav",NULL,SND_ASYNC), printf("Sound=Mi\n");
    if(key=='4') PlaySound("4_F.wav",NULL,SND_ASYNC), printf("Sound=Fa\n");
    if(key=='5') PlaySound("5_G.wav",NULL,SND_ASYNC), printf("Sound=Sol\n");
    if(key=='6') PlaySound("6_A.wav",NULL,SND_ASYNC), printf("Sound=La\n");
    if(key=='7') PlaySound("7_B.wav",NULL,SND_ASYNC), printf("Sound=Si\n");
}

void motion(int x, int y)
{
    rotX += y-oldY;
    rotY += x-oldX;
    oldX=x; oldY=y;
    glutPostRedisplay();
}

void mouse(int button, int state, int x, int y)
{
    oldX = x;
    oldY = y;
    if(GLUT_LEFT_BUTTON==button && GLUT_DOWN==state) printf("now left down\n");
    if(GLUT_RIGHT_BUTTON==button && GLUT_DOWN==state) printf("now right down\n");
}

void special(int key,int x, int y)
{
    if(key==GLUT_KEY_DOWN)
    {
        teaY-=0.1; printf("down\n");
    }
    else if(key==GLUT_KEY_UP)
    {
        teaY+=0.1; printf("up\n");
    }
    glutPostRedisplay();
}


02160056簡瑜萱

電腦圖學
1)作業互評品味
2)Keyboard、Mouse、UI
3)音效、音樂
4)期中考題目、答案
5)模擬考


todo:freegult windows下載 解壓縮 改libgult32.a
todo:glutKeyboardFumc(keyboard);


#include <GL/glut.h>
#include <stdio.h>

void display()
{
    glutSolidTeapot(0.3);
    glFlush();
}

void keyboard(unsigned char key, int x,int y)
{
    if(key=='a')printf("aaaaa\n");
    if(key=='b')printf("bbbbb\n");

}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("hello");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);

    glutMainLoop();
}

接下來要加入音效,到這網址http://billor.chsh.chc.edu.tw/sound/boom.htm下載音效
選好音效另存連結到freeglut/bin資料夾


加入音效後的茶壺
#include <GL/glut.h>
#include <stdio.h>
#include<mmsystem.h>

void display()
{
    glutSolidTeapot(0.3);
    glFlush();
}

void keyboard(unsigned char key, int x,int y)
{
    if(key=='a'){
            PlaySound("wave.way",NULL,SND_ASYNC);
        printf("aaaaa\n");
    }
    if(key=='b')printf("bbbbb\n");

}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("hello");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);

    glutMainLoop();
}


加入鋼琴Do Re Me
#include <GL/glut.h>
#include <stdio.h>
#include<mmsystem.h>

void display()
{
    glutSolidTeapot(0.3);
    glFlush();
}

void keyboard(unsigned char key, int x,int y)
{
    if(key=='a'){
            PlaySound("wave.way",NULL,SND_ASYNC);
        printf("aaaaa\n");
    }
    if(key=='1')PlatSound("Do.way",NULL,SND_ASYNC);
    if(key=='2')PlatSound("Re.way",NULL,SND_ASYNC);
    if(key=='3')PlatSound("Me.way",NULL,SND_ASYNC);
    if(key=='4')PlatSound("Fa.way",NULL,SND_ASYNC);
    if(key=='5')PlatSound("Sol.way",NULL,SND_ASYNC);
    if(key=='6')PlatSound("La.way",NULL,SND_ASYNC);
    if(key=='7')PlatSound("Si.way",NULL,SND_ASYNC);

}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("hello");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);

    glutMainLoop();
}

---------------------------------------------------------------------------------------------

滑鼠控制
#include <GL/glut.h>
#include <stdio.h>
#include<mmsystem.h>

float teaY=0,rotX=0,rotY=0,oldX=0,oldY=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
    glTranslatef(0,teaY,0);
    glRotatef(rotX,1,0,0);
    glRotatef(rotY,0,1,0);
    glutSolidTeapot(0.3);
    glPopMatrix();
    glFlush();
}

void keyboard(unsigned char key, int x,int y)
{
    if(key=='a'){
            PlaySound("wave.wav",NULL,SND_ASYNC);
        printf("aaaaa\n");
    }

}
void special(int key,int x,int y)//上下鍵盤移動 
{
    if(key==GLUT_KEY_DOWN)
    {
        teaY-=0.1;printf("down\n");
    }else if(key==GLUT_KEY_UP){
    teaY+=0.1;printf("up\n");
    }
      glutPostRedisplay();

}
void mouse(int button,int state,int x,int y)
{
    oldX=x; oldY=y;
    if(GLUT_LEFT_BUTTON==button&&GLUT_DOWN==state)printf("now left down\n");
    if(GLUT_RIGHT_BUTTON==button&&GLUT_DOWN==state)printf("now right down\n");
}
void motion(int x,int y)
{
    rotX+=y-oldY;
    rotY+=x-oldX;
    oldX=x; oldY=y;
    glutPostRedisplay();
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("hello");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutSpecialFunc(special);
    glutMouseFunc(mouse);
    glutMotionFunc(motion);
    glutMainLoop();
}









week07 廖峻賢




#include <GL/glut.h>
#include <stdio.h>
/// /////////////////
#include <mmsystem.h>

void display()
{
    glutSolidTeapot(0.3);
    glFlush();
}
void keyboard(unsigned char key, int x, int y)
{
    if(key=='a'){
     /// ///////////////////////
    PlaySound("tarzan.wav",NULL, SND_ASYNC);
    printf("嗚~~~嗚~~~嗚~~~ \n");
    }
    if(key=='b')printf("bbbbb\n");
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("hello");

    glutDisplayFunc(display);
    /// /////////////////////////
    glutKeyboardFunc(keyboard);

    glutMainLoop();
}



加入音效檔(wav)
PlaySound("tarzan.wav",NULL, SND_ASYNC);






PlaySound("tarzan.wav",NULL, SND_ASYNC);
    printf("嗚~~~嗚~~~嗚~~~ \n");
    }
    if(key=='1')PlaySound("Do.wav",NULL, SND_ASYNC);
    if(key=='2')PlaySound("Re.wav",NULL, SND_ASYNC);
    if(key=='3')PlaySound("Mi.wav",NULL, SND_ASYNC);
    if(key=='4')PlaySound("Fa.wav",NULL, SND_ASYNC);
    if(key=='5')PlaySound("Sol.wav",NULL, SND_ASYNC);
    if(key=='6')PlaySound("La.wav",NULL, SND_ASYNC);
    if(key=='7')PlaySound("Si.wav",NULL, SND_ASYNC);
}

加入鋼琴音效

加入程式碼使得茶壺可以上下旋轉移動


Week 07

  • 用基本的 printf 顯示出按下鍵盤確定有效果
  • 加入標頭檔 使音效可以使用
  • 在按下keyboard 觸發音效 及印出字串
#include <GL/glut.h>
#include <stdio.h>

#include <mmsystem.h>

void display()
{
    glutSolidTeapot(0.3);
    glFinish();
}
void keyboard(unsigned char key,int x,int y)
{
    if(key=='a')
    {
        PlaySound("rocket.wav",NULL,SND_ASYNC);
        printf("小心!!! 火箭來囉~~~\n");
    }

}
 int main(int argc,char** argv)
 {
     glutInit(&argc,argv);
     glutCreateWindow("hello");

     glutDisplayFunc(display);
     glutKeyboardFunc(keyboard);

     glutMainLoop();
 }


  • 利用音效檔做出 piano 的模擬器
#include <GL/glut.h>
#include <stdio.h>

#include <mmsystem.h>

void display()
{
    glutSolidTeapot(0.3);
    glFinish();
}
void keyboard(unsigned char key,int x,int y)
{
    if(key=='a')
    {
        PlaySound("rocket.wav",NULL,SND_ASYNC);
        printf("小心!!! 火箭來囉~~~\n");
    }
    if(key=='1') PlaySound("Do.wav",NULL,SND_ASYNC);
    if(key=='2') PlaySound("Re.wav",NULL,SND_ASYNC);
    if(key=='3') PlaySound("Mi.wav",NULL,SND_ASYNC);
    if(key=='4') PlaySound("Fa.wav",NULL,SND_ASYNC);
    if(key=='5') PlaySound("Sol.wav",NULL,SND_ASYNC);
    if(key=='6') PlaySound("La.wav",NULL,SND_ASYNC);
    if(key=='7') PlaySound("Si.wav",NULL,SND_ASYNC);

}
 int main(int argc,char** argv)
 {
     glutInit(&argc,argv);
     glutCreateWindow("hello");

     glutDisplayFunc(display);
     glutKeyboardFunc(keyboard);

     glutMainLoop();
 }



#include <GL/glut.h>
#include <stdio.h>
#include <mmsystem.h>

float teaY=0, rotX=0,rotY=0,oldX=0,oldY=0;

void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
    glTranslatef(0,teaY,0);
    glRotated(rotX,1,0,0);
    glRotated(rotY,0,1,0);
    glutSolidTeapot(0.3);
    glPopMatrix();
    glFinish();
}
void special (int key,int x,int y)
{
    if(key==GLUT_KEY_DOWN)
    {
        teaY-=0.1; printf("down\n");
    } else if(key==GLUT_KEY_UP)
    {
        teaY+=0.1; printf("up\n");
    }
    glutPostRedisplay();

}
void mouse (int button,int state,int x,int y)
{
    oldX=x; oldY=y;
    if(GLUT_LEFT_BUTTON==button && GLUT_DOWN==state) printf("left down\n");
    if(GLUT_RIGHT_BUTTON==button && GLUT_DOWN==state) printf("right down\n");
}
void motion(int x,int y)
{
    rotX += y-oldY;
    rotY += x-oldX;
    oldX=x ; oldY=y;
    glutPostRedisplay();
}

void keyboard(unsigned char key,int x,int y)
{
    if(key=='a')
    {
        PlaySound("rocket.wav",NULL,SND_ASYNC);
        printf("小心!!! 火箭來囉~~~\n");
    }
    if(key=='1') PlaySound("Do.wav",NULL,SND_ASYNC);
    if(key=='2') PlaySound("Re.wav",NULL,SND_ASYNC);
    if(key=='3') PlaySound("Mi.wav",NULL,SND_ASYNC);
    if(key=='4') PlaySound("Fa.wav",NULL,SND_ASYNC);
    if(key=='5') PlaySound("Sol.wav",NULL,SND_ASYNC);
    if(key=='6') PlaySound("La.wav",NULL,SND_ASYNC);
    if(key=='7') PlaySound("Si.wav",NULL,SND_ASYNC);

}
 int main(int argc,char** argv)
 {
     glutInit(&argc,argv);
     glutCreateWindow("hello");

     glutDisplayFunc(display);
     glutKeyboardFunc(keyboard);
     glutSpecialFunc(special);
     glutMouseFunc(mouse);
     glutMotionFunc(motion);

     glutMainLoop();
 }




02160473week07

電腦圖學2015-04-09 week07
(1)作業互評 品味
(2)Keyboard,Mouse,UI
(3)音效,音樂
(4)期中考題目,答案
(5)模擬考
ㄟㄟㄟㄟㄟㄟㄟㄟㄟㄟㄟㄟㄟㄟㄟㄟㄟㄟㄟ哈哈哈哈哈哈哈哈哈哈哈哈
今天要做的第一個作業是Keyboard
ex.按下a可以print出aaaaa
     按下b可以print出bbbbb
















第二個作業是PlaySound
要PlaySound之前要先加入
#include <mmsystem.h>
這樣PlaySound才可以作用呦~~~~~~~~~~~~~~~~~
















小鋼琴~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
















第三個作業是Mouse
加入了special
            motion
            mouse
按上下鍵茶壺就可以上下移動喔
















也可上下轉喔


02160074_張凱晴 week07

本周重點:Keyboard、Mouse

1.Keyboard

2.增加音效:先下載一個音檔,放到 freeglut ->bin 資料夾裡

3.增加程式,當按下 a 的時候,發出聲音

4.找音階的單音檔,就可以做出
音階

5.Mouse 
glutSpecialFunc(special);//glut的SpecialFunc 可以用F1~F12 & 上下左右 &Ctrl.....等等


程式碼如下:
#include <GL/glut.h>
#include <stdio.h>
#include <mmsystem.h>
float teaY=0,rotX=0,rotY=0,oldX=0,oldY=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
    glTranslatef(0,teaY,0);
    glRotatef(rotX,1,0,0);
    glRotatef(rotX,0,1,0);
    glColor3f(0,0.5,0.8);
    glutSolidTeapot(0.3);
    glPopMatrix();
    glFlush();
}
void keyboard(unsigned char  key,int x,int y)
{
    if(key=='1') PlaySound("Do.wav",NULL,SND_ASYNC);
    if(key=='2') PlaySound("Re.wav",NULL,SND_ASYNC);
    if(key=='3') PlaySound("Mi.wav",NULL,SND_ASYNC);
    if(key=='4') PlaySound("Fa.wav",NULL,SND_ASYNC);
    if(key=='5') PlaySound("Sol.wav",NULL,SND_ASYNC);
    if(key=='6') PlaySound("La.wav",NULL,SND_ASYNC);
    if(key=='7') PlaySound("Si.wav",NULL,SND_ASYNC);
}
void special(int key,int x,int y)
{
    if(key==GLUT_KEY_DOWN){ 
        teaY-=0.1; printf("down\n"); 
    }
    else if(key==GLUT_KEY_UP){
        teaY+=0.1; printf("up\n");
    }
    glutPostRedisplay();
}
void mouse(int button,int state,int x,int y)
{
    oldX=x; oldY=y;
    if(GLUT_LEFT_BUTTON==button && GLUT_DOWN==state) printf("left down\n");
    if(GLUT_RIGHT_BUTTON==button && GLUT_DOWN==state) printf("right down\n");
}
void motion(int x,int y)
{
    rotX+=y-oldY;
    rotX+=x-oldX;
    oldX=x; oldY=y;
    glutPostRedisplay();
}
int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutCreateWindow("02160074");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutSpecialFunc(special);
    glutMouseFunc(mouse);
    glutMotionFunc(motion);

    glutMainLoop();
}

week07洞陸扒伍

(1)作業互評(peer assessment):品味(HFS)
(2)keyboard,mouse,UI"考試都不會考"
(3)音效,音樂"考試都不會考"
(4)期中考題目,答案
(5)模擬考


1.建立用keyboard輸出文字
#include <GL/glut.h>
#include <stdio.h>
void display()
{
    glutSolidTeapot(0.3);
    glFlush();
}
void keyboard(unsigned char key,int x,int y)
{
    if(key=='a') printf("aaaaaa\n");
    if(key=='b') printf("bbbbbb\n");
}
int main(int argc,char**argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("02160685");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
}
上面是程式碼
重要三行
void keyboard(unsigned char key,int x,int y)
{
    if(key=='a') printf("aaaaaa\n");
    if(key=='b') printf("bbbbbb\n");
}



















2修改程式碼,可輸出音效
#include <GL/glut.h>
#include <stdio.h>
#include <mmsystem.h>
void display()
{
    glutSolidTeapot(0.3);
    glFlush();
}
void keyboard(unsigned char key,int x,int y)
{
    if(key=='a'){
        PlaySound("tarzan.wav",NULL,SND_ASYNC);
        printf("阿  ~~~哈哈哈ㄏ哈哈哈阿\n");
    }
    if(key=='b') printf("bbbbbb\n");
}
int main(int argc,char**argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("02160685");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
}
主要程式
#include <mmsystem.h>
 if(key=='a'){
  PlaySound("tarzan.wav",NULL,SND_ASYNC);
  printf("阿  ~~~哈哈哈ㄏ哈哈哈阿\n");



















3.輸出小小鋼琴
#include <GL/glut.h>
#include <stdio.h>
#include <mmsystem.h>
void display()
{
    glutSolidTeapot(0.3);
    glFlush();
}
void keyboard(unsigned char key,int x,int y)
{
    if(key=='1')PlaySound("Do.wav",NULL,SND_ASYNC);
    if(key=='2')PlaySound("Re.wav",NULL,SND_ASYNC);
    if(key=='3')PlaySound("Mi.wav",NULL,SND_ASYNC);
    if(key=='4')PlaySound("Fa.wav",NULL,SND_ASYNC);
    if(key=='5')PlaySound("Sol.wav",NULL,SND_ASYNC);
    if(key=='6')PlaySound("La.wav",NULL,SND_ASYNC);
    if(key=='7')PlaySound("Si.wav",NULL,SND_ASYNC);
}
int main(int argc,char**argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("02160685");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
}
重要程式
void keyboard(unsigned char key,int x,int y)
{
    if(key=='1')PlaySound("Do.wav",NULL,SND_ASYNC);
    if(key=='2')PlaySound("Re.wav",NULL,SND_ASYNC);
    if(key=='3')PlaySound("Mi.wav",NULL,SND_ASYNC);
    if(key=='4')PlaySound("Fa.wav",NULL,SND_ASYNC);
    if(key=='5')PlaySound("Sol.wav",NULL,SND_ASYNC);
    if(key=='6')PlaySound("La.wav",NULL,SND_ASYNC);
    if(key=='7')PlaySound("Si.wav",NULL,SND_ASYNC);
}



















4用keyboard,mouse,special,motion涵式讓茶壺轉動移動
#include <GL/glut.h>
#include <stdio.h>
#include <mmsystem.h>
float teaY=0,rotX=0,rotY=0, oldX=0, oldY=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
    glTranslatef(0,teaY,0);
    glRotatef(rotX,1,0,0);
    glRotatef(rotY,0,1,0);
    glutSolidTeapot(0.3);
    glEnd();
    glFlush();
}
void keyboard(unsigned char key,int x,int y)
{
    if(key=='1')PlaySound("Do.wav",NULL,SND_ASYNC);
    if(key=='2')PlaySound("Re.wav",NULL,SND_ASYNC);
    if(key=='3')PlaySound("Mi.wav",NULL,SND_ASYNC);
    if(key=='4')PlaySound("Fa.wav",NULL,SND_ASYNC);
    if(key=='5')PlaySound("Sol.wav",NULL,SND_ASYNC);
    if(key=='6')PlaySound("La.wav",NULL,SND_ASYNC);
    if(key=='7')PlaySound("Si.wav",NULL,SND_ASYNC);
}
void special(int key,int x,int y)
{
    if(key==GLUT_KEY_DOWN)
    {
        teaY-=0.1;printf("down\n");
    }
    else if(key==GLUT_KEY_UP)
    {
        teaY+=0.1;printf("up\n");
    }
    glutPostRedisplay();
}

void mouse(int button,int state,int x,int y)
{
    oldX=x; oldY=y;
    if(GLUT_LEFT_BUTTON==button&&GLUT_DOWN==state)printf("now left down\n");
    if(GLUT_RIGHT_BUTTON==button&&GLUT_DOWN==state)printf("now right down\n");
}
void motion(int x,int y)
{
    rotX +=y-oldY;
    rotY +=x-oldX;
    oldX=x;oldY=y;
    glutPostRedisplay();
}
int main(int argc,char**argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("02160685");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutSpecialFunc(special);
    glutMouseFunc(mouse);
    glutMotionFunc(motion);
    glutMainLoop();
}
主要程式碼
Main
float teaY=0,rotX=0,rotY=0, oldX=0, oldY=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
    glTranslatef(0,teaY,0);
    glRotatef(rotX,1,0,0);
    glRotatef(rotY,0,1,0);
    glutSolidTeapot(0.3);
    glEnd();
    glFlush();
}
Keyboard
void keyboard(unsigned char key,int x,int y)
{
    if(key=='1')PlaySound("Do.wav",NULL,SND_ASYNC);
    if(key=='2')PlaySound("Re.wav",NULL,SND_ASYNC);
    if(key=='3')PlaySound("Mi.wav",NULL,SND_ASYNC);
    if(key=='4')PlaySound("Fa.wav",NULL,SND_ASYNC);
    if(key=='5')PlaySound("Sol.wav",NULL,SND_ASYNC);
    if(key=='6')PlaySound("La.wav",NULL,SND_ASYNC);
    if(key=='7')PlaySound("Si.wav",NULL,SND_ASYNC);
}
Special
void special(int key,int x,int y)
{
    if(key==GLUT_KEY_DOWN)
    {
        teaY-=0.1;printf("down\n");
    }
    else if(key==GLUT_KEY_UP)
    {
        teaY+=0.1;printf("up\n");
    }
    glutPostRedisplay();
}
Mouse
void mouse(int button,int state,int x,int y)
{
    oldX=x; oldY=y;
    if(GLUT_LEFT_BUTTON==button&&GLUT_DOWN==state)printf("now left down\n");
    if(GLUT_RIGHT_BUTTON==button&&GLUT_DOWN==state)printf("now right down\n");
}
Motion
void motion(int x,int y)
{
    rotX +=y-oldY;
    rotY +=x-oldX;
    oldX=x;oldY=y;
    glutPostRedisplay();
}
glutKeyboardFunc(keyboard);
glutSpecialFunc(special);
glutMouseFunc(mouse);
glutMotionFunc(motion);

02160792蔡靖嵐_week07

今天目標
1) 作業互評
2)keyboard,mouse,ui
3) 音效音樂
4)期中考題目答案
5)模擬考

HFS~HTTP FILE SERVER是個很好的分享網站

今天要學新的三行程式碼

void keyboard(unsigned char key,int x, int y)
{
    if(key=='a') printf("aaaaa\n");
    if(key=='b') printf("bbbbb\n");
}

這樣按a就會顯示aaaaa,b就會顯示bbbbbb.


再來就是有聲音,在網路上面找音樂.把音樂檔放在freeglut的bin裡面才會有聲音哦.


這樣重複,把音效變成鋼琴,那就可以彈音樂囉.

接下來還可以用glutSpecialFunc(special).可以用在特別的按鍵上面.


再加上其他功能.rotate,mouse,motion


02160863_張育睿_week07

  今天上課的目標是把聲音音效加進去程式中
1.一開始也是和之前一樣開啟 open gl 的 project 並打上之前的程式碼
2.加上 void keyboard(unsigned char key,int x, int y)
            if(key=='a') printf("aaa\n")
            if(key=='b') printf("bbb\n") 讓鍵盤可以按 a 的時候讓畫面出現 aaa
                                                                             按 b 的時候讓畫面出現 bbb


3.再來就可以去上網找其他的音效了 , 但是切記要在表頭的部分加上#include <mmSystem.h>



4.我找的是康加鼓的聲音 , 只要程式執行後按下按鍵就可以讓它發出聲音 , 並依我們所要它顯     示的字體在程式中




5.音效下載完的部分記得要存在 freeglut 裡的 bin 檔案中 , 不然會沒聲音


6.在網路上找到了 piano 的聲音 , 把它下載下來 , 也是一樣要放在 freeglut 的 bin 檔案


7.把它加入程式中 , 讓它發出鋼琴的聲音


8.再來是增加 special 這個函式來讓它可以控制茶壺的上下移動


9.接著增加 mouse 以及 motion 的函式讓滑鼠可以旋轉它
   在 main() 裡面也要記得加上  glutMouseFunc(mouse)   來讓 mouse 和 motion 的函式可以執行
                                                      glutMotionFunc(motion)