2018年5月11日 星期五

Week11_陳示珮

第十一週
(1) 主題 : 聲音/音效.音樂
(2) 實作 : PlaySound(), CMP3_MCI.h
(3) 鍵盤鋼琴、射擊遊戲
(4) 複習貼圖+TRT、下周小考


實作1  射擊遊戲















(1) 至moodle上課用的軟體中下載lesson32.zip檔案並解壓縮















(2)點開Lesson32.exe即可開始體驗射擊遊戲



實作2  加入第一個聲音















(1) 開啟GLUT project並完成freeglut正常程序




(2)在開啟的檔案中加入播放聲音的程式

程式碼 :

#include <mmsystem.h>///使用外掛多媒體系統

PlaySound("Shot.wav",NULL,SND_ASYNC);///呼叫播放聲音
















(3)將剛剛下載Lesson32中Data裡的Shot.wav檔案複製並移至freeglut的bin中
















(4) 即可播放聲音




實作3  加入兩個聲音(同步、不同步)















(1)上網搜尋wav 下載喜歡的聲音,並將檔案放入freeglut的bin中
















(2)加入程式碼

程式碼 :

#include <mmsystem.h>///使用外掛多媒體系統

PlaySound("Shot.wav",NULL,SND_ASYNC);///呼叫播放聲音(不等他)不同步 PlaySound("atchoum.wav",NULL,SND_SYNC);///呼叫播放聲音(等他)同步

















(3)播放聲音時,會先將同步的播完後才顯示出結果




實作4  加入滑鼠動作















(1)加入滑鼠動作程式碼
當執行程式時持續播放的音效(atchoum.wav)會持續播放,直到按下滑鼠播放另一個聲音(Shot.wav)才會停止

程式碼 :

#include <mmsystem.h>///使用外掛多媒體系統
void mouse(int button,int state,int x,int y)
{
    if(state==GLUT_DOWN)PlaySound("Shot.wav",NULL,SND_ASYNC);
}

PlaySound("atchoum.wav",NULL,SND_ASYNC|SND_LOOP);///呼叫播放聲音 持續放

glutMouseFunc(mouse);///mouse事件





實作5  鋼琴鍵盤
















(1)當按下1234567時會個別播放出不同音階
先至moodle下載七個音的檔案,並放入freeglut的bin中

程式碼 :

#include <mmsystem.h>

        case '1':PlaySound("Do.wav",NULL,SND_ASYNC);
        break;
        case '2':PlaySound("Re.wav",NULL,SND_ASYNC);
        break;
        case '3':PlaySound("Mi.wav",NULL,SND_ASYNC);
        break;
        case '4':PlaySound("Fa.wav",NULL,SND_ASYNC);
        break;
        case '5':PlaySound("Sol.wav",NULL,SND_ASYNC);
        break;
        case '6':PlaySound("La.wav",NULL,SND_ASYNC);
        break;
        case '7':PlaySound("Si.wav",NULL,SND_ASYNC);
        break;





實作6  音效配合輸入















(1) 開啟 Console applcation project
















(2) 輸入程式碼,並將音效檔放入project中

程式碼 :

#include <windows.h>
#include <mmsystem.h>
#include <stdio.h>

int main()
{
    PlaySound("atchoum.wav",NULL,SND_SYNC);///等他
    printf("Hello World\n");
}















(3) 音效播放結束後會印出Hello World
















(4) 輸入後才會停止音效

程式碼 :

#include <windows.h>
#include <mmsystem.h>
#include <stdio.h>

int main()
{
    PlaySound("atchoum.wav",NULL,SND_ASYNC);///不等他
    printf("Hello World\n");///立馬執行

    int n;
    scanf("%d",&n);///等輸入完聲音才停止
}




沒有留言:

張貼留言