2015年4月16日 星期四

week_08_02160660_楊涵雯

(1) 模擬考.期中考試
(2) 用範例學習
(3) 打光→法向量
(4) 貼圖→貼圖座標
(5) NeHe Lesson 32 小遊戲



貼圖座標程式碼









#include <GL/glut.h>
#include <mmsystem.h>
#include <stdio.h>
void mouse(int button,int state,int x,int y)
{
    if(state==GLUT_DOWN)
    {
        PlaySound("Shot.wav",NULL,SND_ASYNC);
        printf("Shot!\n");
    }
}
void keyboard(unsigned char key,int x,int y)
{
    exit(0);
}
void display()
{
    glClearColor(0.5,0.5,1,0);
    glClear(GL_COLOR_BUFFER_BIT);
    glFlush();
}
int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutCreateWindow("hi");
    glutFullScreen(); ////////
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMouseFunc(mouse);
    glutMainLoop();
}



加程式碼
float potX=-1,potY=0;
void display()
{
    potX+=0.01;
    if(potX>1.1) potX=-1.1;
    glClearColor(0.5,0.5,1,0);
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
        glTranslated(potX,potY,0);
        glutSolidTeapot(0.05);
    glPopMatrix();
    glFlush();
}
int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutCreateWindow("hi");
    glutFullScreen(); ////////
    glutDisplayFunc(display);
    glutIdleFunc(display);
    glutKeyboardFunc(keyboard);
    glutMouseFunc(mouse);
    glutMainLoop();
}



加程式碼
void mouse(int button,int state,int x,int y)
{
    if(state==GLUT_DOWN)
    {
        PlaySound("Shot.wav",NULL,SND_ASYNC);
        printf("Shot!\n");

        float mouseX=2*x/1280.0-1,mouseY=2*y/1280.0-1;
        if(fabs(mouseX-potX)<0.1&&fabs(mouseY-potY)<0.1)
            {PlaySound("ahhh.wav",NULL,SND_ASYNC);
            printf("You got it!\n");
            }
    }
}

沒有留言:

張貼留言