Step01-1
- 開CodeBlocks->建立新的Empty File week15-1_PlaySound.cpp
#include <windows.h>
#include <stdio.h>
int main()
{
printf("PlaySound()之前\n");
PlaySound("badbad.wav", NULL, SND_SYNC);
printf("PlaySound()之後\n");
}
- 但執行不了,因為還沒有在settings->compiler加入winmm

- 執行真的聲音,去BBC網站下載免費聲音,在把檔案解壓縮後放到跟week15-1_PlaySound.cpp 一樣位置的資料夾內,再執行即可

- 另存新檔 week15-2_SND_SYNC_SNDASYNC.cpp
- SND_SYNC -> 等待同步, SND_ASYNC -> 不等待同步 (直接執行下一行)
Step02-1
#include <windows.h>
#include <stdio.h>
int main()
{
PlaySound("07071034.wav", NULL, SND_ASYNC);
while(1){
printf("請輸入數字:");
int N;
scanf("%d",&N);
if(N==1) PlaySound("do.wav", NULL, SND_ASYNC);
if(N==2) PlaySound("re.wav", NULL, SND_ASYNC);
if(N==3) PlaySound("mi.wav", NULL, SND_ASYNC);
}
}
只能播wav檔不能播mp3檔,因為mp3檔被壓縮過,wav檔沒被壓縮過,所以執行程式碼時,如果把壓縮過的mp3檔讓音效卡讀取時就會無法讀取,所以只能用原始大小的wav檔
Step02-2
讓程式可以讀取mp3
- 去moodle下載CMP3_MCI.h,並放到week15資料夾內
- 建立新的Empty File week15-3_mp3.cpp
- 再程式碼內新增 #include "CMP3_MCI.h"
#include "CMP3_MCI.h"
CMP3_MCI mp3;
int main ()
{
mp3.Load("07071034.wav");
mp3.Play();
printf("輸入數字程式卡住");
int N;
scanf("%d",&N);
}
Step02-3
- 建立新GLUT專案 week15-1_angles_TRT_again
- Copy上周的程式碼並貼上
- myWrite()會寫一行,myRead()會讀一行
- 為了只讀取到動作完成的位置,所以要把motion()裡面的myWrite()去掉
- 因為在motion()裡面myWrite()會將所有過程都記錄下來
- 然後要在keyboard()裡面新增動作s,當按下s後會儲存當前手臂的位置


Step03-1
讓機器人擺動作
- 需要3D Model (glm.h,glm.cpp .obj....)
- 需要切割模型分別讀入
- 使用TRT程式轉動分割後的模型
- keboard() 切換關節, mouse motion()用滑鼠轉動關節
- 建立一個新GLUT專案 week15_hw_gundam_parts
- 用Notepad++將工作目錄的路徑改成 "."

- 將glut資料夾內的freeglut.dill檔按複製到week15_hw_gundam_parts內
Week15作業:












沒有留言:
張貼留言