2)用範例學習
3)打光->法向量
4)貼圖->貼圖座標
5)NeHe Lesson32小遊戲
TODO解壓縮NeHe Lesson32.vip
跑範例ligft matericd(打光)
跑範例Texyure(貼圖)
freeglut/codeblocks/GLUT
點擊螢幕發出聲音
#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("hello");
glutFullScreen();//全螢幕
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutMainLoop();
}
加入茶壺
#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);
}
float potX=-1,potY=0;
void display()
{
potX+=0.03;
if(potX>1.1)potX=-1.1;
glClearColor(0.5,0.5,1,0);
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glTranslatef(potX, potY,0);
glutSolidTeapot(0.05);
glPopMatrix();
glFlush();
}
int main (int argc,char**argv)
{
glutInit(&argc,argv);
glutCreateWindow("hello");
glutFullScreen();
glutDisplayFunc(display);
glutDisplayFunc(display);
glutIdleFunc(display);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutMainLoop();
}
如果點到茶壺就會發出另一個聲音
#include <GL/glut.h>
#include <mmsystem.h>
#include <stdio.h>
#include <math.h>
float potX=-1,potY=0;
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/1024.0 -1;
if(fabs(mouseX - potX)<0.1 && fabs(mouseY-potY)<0.1){
PlaySound("Femaleha.wav",NULL,SND_ASYNC);
printf("You got it!\n");
}
}
}
void keyboard(unsigned char key,int x,int y)
{
exit(0);
}
void display()
{
potX+=0.03;
if(potX>1.1)potX=-1.1;
glClearColor(0.5,0.5,1,0);
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glTranslatef(potX, potY,0);
glutSolidTeapot(0.05);
glPopMatrix();
glFlush();
}
int main (int argc,char**argv)
{
glutInit(&argc,argv);
glutCreateWindow("hello");
glutFullScreen();
glutDisplayFunc(display);
glutIdleFunc(display);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutMainLoop();
}









沒有留言:
張貼留言