2021年4月28日 星期三

懶嵐\(。∀ ° )/ Week10

前情提要

這禮拜上內容的都跟聲音有關

以下截圖請自行想像他有聲音

拜託啦 

Part1.

這禮拜玩聲音
音檔須為wav檔
並且放在freeglut的bin資料夾裡

輸入數字撥放音檔

Part2.


把茶壺加進來
把上一part的輸入數字改成按下數字鍵
上程式碼
#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("ahoy.wav",NULL,SND_ASYNC);
    if(key=='2')PlaySound("mdfk.wav",NULL,SND_ASYNC);
    if(key=='3')PlaySound("faq.wav",NULL,SND_ASYNC);
    if(key=='4')PlaySound("shut.wav",NULL,SND_ASYNC);
    if(key=='5')PlaySound("wry.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("08160280蔡承泰");///(3)建立GLUT視窗
    glutDisplayFunc(display);///(4)準備display()函式
    glutKeyboardFunc(keyboard);
    glutMainLoop();///(5)主要程式
}

#再次麻煩觀看者想像一下他有聲音

Part3.

外掛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("ahoy.wav",NULL,SND_ASYNC);
    if(key=='2')PlaySound("mdfk.wav",NULL,SND_ASYNC);
    if(key=='3')PlaySound("faq.wav",NULL,SND_ASYNC);
    if(key=='4')PlaySound("shut.wav",NULL,SND_ASYNC);
    if(key=='5')PlaySound("wry.wav",NULL,SND_ASYNC);

}
int main(int argc, char *argv[])///main()函式
{
   mp3.Load("ahoy.mp3");///檔案放執行目錄freeglut/bin
   mp3.Play();///播放
    glutInit(&argc, argv);///(1)Init初始化GLUT
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能
    glutCreateWindow("08160280蔡承泰");///(3)建立GLUT視窗
    glutDisplayFunc(display);///(4)準備display()函式
    glutKeyboardFunc(keyboard);
    glutMainLoop();///(5)主要程式
}


Part4.

除了按數字鍵播音樂
加上滑鼠左鍵中鍵右鍵也可以
上程式碼

#include <windows.h>
#include <GL/glut.h>///使用GLUT外掛
#include "CMP3_MCI.h"///檔案放在week10_sound
CMP3_MCI mp3;///宣告變數
CMP3_MCI ahoy,shut,faq;
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("ahoy.wav",NULL,SND_ASYNC);
    if(key=='2')PlaySound("mdfk.wav",NULL,SND_ASYNC);
    if(key=='3')PlaySound("faq.wav",NULL,SND_ASYNC);
    if(key=='4')PlaySound("shut.wav",NULL,SND_ASYNC);
    if(key=='5')PlaySound("wry.wav",NULL,SND_ASYNC);
}
void mouse(int button, int state, int x, int y)
{
    if(state==GLUT_DOWN&&button==GLUT_LEFT_BUTTON) ahoy.Play();
    if(state==GLUT_DOWN&&button==GLUT_MIDDLE_BUTTON) shut.Play();
    if(state==GLUT_DOWN&&button==GLUT_RIGHT_BUTTON) faq.Play();
}
int main(int argc, char *argv[])///main()函式
{
    ahoy.Load("ahoy.mp3");///檔案放執行目錄freeglut/bin
    shut.Load("shut.mp3");
    faq.Load("faq.mp3");
    glutInit(&argc, argv);///(1)Init初始化GLUT
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能
    glutCreateWindow("08160280蔡承泰");///(3)建立GLUT視窗

    glutDisplayFunc(display);///(4)準備display()函式
    glutKeyboardFunc(keyboard);
    glutMouseFunc(mouse);
    glutMainLoop();///(5)主要程式
}

#有啦有聲音啦不只有聲音你亂按時他還超嗨的





沒有留言:

張貼留言

距地表面160 Week11

 #include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) {     if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...