第1部份
聲音
檔案要放在freeglut/bin裡面
音樂檔案要是wav檔
增加按下放音樂
執行結果
-----------------------------------------------------------------------------------------------------------------------------
第2部份
開視窗放茶壺
加上第1部分的按鍵
程式碼
#include <windows.h>
#include <GL/glut.h>///使用GLUT外掛
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glutSolidTeapot(0.3);
glutSwapBuffers();///更新畫面
}
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("so.wav",NULL,SND_ASYNC);
}
int main(int argc, char *argv[])///main()函式
{
glutInit(&argc, argv);///(1)Init初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能
glutCreateWindow("Week10 李華燿");///(3)建立GLUT視窗
glutDisplayFunc(display);///(4)準備display()函式
glutKeyboardFunc(keyboard);
glutMainLoop();///(5)主要程式
}
開始1231321313
使用使用CMP3_MCI
可以撥放mp3檔
程式碼
#include <windows.h>
#include <GL/glut.h>///使用GLUT外掛
#include "CMP3_MCI.h"///檔案放在week10_sound
CMP3_MCI mp3;///宣告變數
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glutSolidTeapot(0.3);
glutSwapBuffers();///更新畫面
}
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("so.wav",NULL,SND_ASYNC);
}
int main(int argc, char *argv[])///main()函式
{
mp3.Load("music.mp3");///檔案放執行目錄freeglut/bin
mp3.Play();///播放
glutInit(&argc, argv);///(1)Init初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能
glutCreateWindow("Week10 李華燿 ");///(3)建立GLUT視窗
glutDisplayFunc(display);///(4)準備display()函式
glutKeyboardFunc(keyboard);
glutMainLoop();///(5)主要程式
}
一樣可以按鍵放音樂
加上射擊音
透過滑鼠按下發出聲音
程式碼
#include <windows.h>
#include <GL/glut.h>///使用GLUT外掛
#include "CMP3_MCI.h"///檔案放在week10_sound
CMP3_MCI mp3;///宣告變數
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glutSolidTeapot(0.3);
glutSwapBuffers();///更新畫面
}
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("so.wav",NULL,SND_ASYNC);
}
void mouse(int button, int state, int x, int y)
{
if(state==GLUT_DOWN) PlaySound("shot.wav", NULL, SND_ASYNC);
}
int main(int argc, char *argv[])///main()函式
{
mp3.Load("music.mp3");///檔案放執行目錄freeglut/bin
mp3.Play();///播放
glutInit(&argc, argv);///(1)Init初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能
glutCreateWindow("Week10 李華燿");///(3)建立GLUT視窗
glutDisplayFunc(display);///(4)準備display()函式
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutMainLoop();///(5)主要程式
}
不斷點擊
增加左中右鍵點擊聲
程式碼
#include <windows.h>
#include <GL/glut.h>///使用GLUT外掛
#include "CMP3_MCI.h"///檔案放在week10_sound
CMP3_MCI mp3;///宣告變數
CMP3_MCI shot1,shot2,shot3;
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glutSolidTeapot(0.3);
glutSwapBuffers();///更新畫面
}
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("so.wav",NULL,SND_ASYNC);
}
void mouse(int button, int state, int x, int y)
{
if(state==GLUT_DOWN&&button==GLUT_LEFT_BUTTON) shot1.Play();
if(state==GLUT_DOWN&&button==GLUT_MIDDLE_BUTTON) shot2.Play();
if(state==GLUT_DOWN&&button==GLUT_RIGHT_BUTTON) shot3.Play();
}
int main(int argc, char *argv[])///main()函式
{
shot1.Load("1.wav");
shot2.Load("2.wav");
shot3.Load("3.wav");
mp3.Load("music.mp3");///檔案放執行目錄freeglut/bin
mp3.Play();///播放
glutInit(&argc, argv);///(1)Init初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能
glutCreateWindow("Week10 李華燿");///(3)建立GLUT視窗
glutDisplayFunc(display);///(4)準備display()函式
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutMainLoop();///(5)主要程式
}
執行結果
-----------------------------------------------------------------------------------------------------------------------------
第0部份
存檔
將freeglut.dll用notepad++打開
改成working_dir="."
把其他的都移到Week10_sound下
執行結果
沒有留言:
張貼留言