1. 製作鍵盤能打字
#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();
2.能發出聲音 (WAV下載)
#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("散彈槍.wav", 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();
}
3.音階
以上所有聲音檔都要放在bin裡面!!
void keyboard(unsigned char key, int x, int y)
{
if(key=='a')
{
PlaySound("散彈槍.wav", NULL, SND_ASYNC); ///發出聲音
printf("aaaaa\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); ///發出聲音
}
4.滑鼠控制 (全部程式碼)
#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("散彈槍.wav", NULL, SND_ASYNC); ///發出聲音
printf("aaaaa\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); ///發出聲音
}
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();
}
沒有留言:
張貼留言