顯示具有 week10 標籤的文章。 顯示所有文章
顯示具有 week10 標籤的文章。 顯示所有文章

2021年5月8日 星期六

本人發言不代表本人立場 week10

主題:背景音樂

 1.播放聲音

  • 還沒有放到執行目錄,所以只有系統音效

#include<windows.h>
int main()
{   ///執行目錄     ///空指標  ///要等同步
    PlaySound("shot.wav", NULL, SND_SYNC);
}
 

  • 找音源檔,一定要wav檔 
  • 讓多個音源一起播放(輸入完數字按enter鍵) 
#include<windows.h>
#include <stdio.h>
int main()
{
    while(1){
        char c = getchar();
        if(c=='1')PlaySound("do.wav", NULL, SND_ASYNC);///不同步
        if(c=='2')PlaySound("re.wav", NULL, SND_ASYNC);
        if(c=='3')PlaySound("mi.wav", NULL, SND_ASYNC);
        if(c=='4')PlaySound("fa.wav", NULL, SND_ASYNC);
        if(c=='5')PlaySound("so.wav", NULL, SND_ASYNC);
    }
}
 
執行結果: 

  • 圖片後加上聲音(不用按enter)

#include <windows.h>
#include <GL/glut.h>
void display()
{
    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);
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week10 playsound");

    glutDisplayFunc(display);
    glutKeyboardFunc( keyboard);
    glutMainLoop();
}
 
執行結果:


 

  • 用MP3放背景,同時可以按數字播音樂

#include <windows.h>
#include <GL/glut.h>
#include"CMP3_MCI.h" ///.h檔要放在專案目錄下
CMP3_MCI mp3;///宣告一個變數(MP3的變數)
void display()
{
    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[])
{
    mp3.Load("music.mp3");///檔案放執行目錄....\freeglut\bin
    mp3.Play(); ///播放
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week10");

    glutDisplayFunc(display);
    glutKeyboardFunc( keyboard);
    glutMainLoop();
 

  •  加上滑鼠播聲音

#include <windows.h>
#include <GL/glut.h>
#include"CMP3_MCI.h"
CMP3_MCI mp3;
void display()

{
    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[])

{
    mp3.Load("music.mp3");
    mp3.Play();
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week10 playsound");

    glutDisplayFunc(display);
    glutKeyboardFunc( keyboard);
    glutMouseFunc(mouse);
    glutMainLoop();

}

  •  編輯cbp檔,把資料夾路徑刪掉改成 .
  • 把音樂檔都移到專案檔


 

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)主要程式
}

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





嘿嘿嘿(⊙v⊙)  Week10

 播放聲音























————————————————————————————————————————

按「1、2、3」後,再按enter就會播放










————————————————————————————————————————

按「1、2、3」就會播放










————————————————————————————————————————

播放mp3(也可以按123)


















————————————————————————————————————————

按下滑鼠會播放射擊的音效





















————————————————————————————————————————

左鍵右鍵中鍵個別發出不同的聲音



















————————————————————————————————————————

小乖的圖學筆記 week10

 上一周期中考啦哈哈

------------------------------------------------------------------------------------------

這周教添加音樂

0.資料夾裡先放這些檔案

0-1 路徑C:\Users\Administrator\Desktop\freeglut\bin

0-2路徑C:\Users\Administrator\Desktop\week10-1 (專案資料夾裡)


1.開啟GLUT專案

2.添加程式碼PlaySound("檔案名稱.wav(ˇ只能使用wav檔)",空指標,執行模式);

#include <windows.h>
#include <stdio.h>
int main()
{
    PlaySound("2020-12-1-14-59-3-165-nf1.wav",NULL,SND_SYNC);
}

這樣可以自動播放 2020-12-1-14-59-3-165-nf1.wav


3.添加程式碼

#include <windows.h>
#include <stdio.h>
int main()
{
    PlaySound("do.wav",NULL,SND_ASYNC);
    PlaySound("re.wav",NULL,SND_ASYNC);
    PlaySound("mi.wav",NULL,SND_ASYNC);
    PlaySound("fa.wav",NULL,SND_ASYNC);
    PlaySound("so.wav",NULL,SND_ASYNC);

}

這樣會依序播放do,re,mi.,fa,so但整個程式執行會很冗長


4.修改程式碼為以下

    while(1){
        char c=getchar();
        if(c=='z')PlaySound("do.wav",NULL,SND_ASYNC);
        if(c=='x')PlaySound("re.wav",NULL,SND_ASYNC);
        if(c=='c')PlaySound("mi.wav",NULL,SND_ASYNC);
        if(c=='v')PlaySound("fa.wav",NULL,SND_ASYNC);
        if(c=='b')PlaySound("so.wav",NULL,SND_ASYNC);
    }

這樣會按下按鍵後Enter播放對應音檔,並且後按的會蓋過前面的


俗稱鋼琴

5.修改程式碼為以下

#include <windows.h>
#include <stdio.h>
#include <GL/glut.h>
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glutSwapBuffers();
}
void keyboard(unsigned char c,int x,int y)
{
    if(c=='z') PlaySound("do.wav",NULL,SND_ASYNC);
    if(c=='x') PlaySound("re.wav",NULL,SND_ASYNC);
    if(c=='c') PlaySound("mi.wav",NULL,SND_ASYNC);
    if(c=='v') PlaySound("fa.wav",NULL,SND_ASYNC);
    if(c=='b') PlaySound("so.wav",NULL,SND_ASYNC);

}
int main(int argc,char** argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("小乖的鋼琴");
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
}

這樣就解決每次都要Enter才會播放的問題,變成按下按鍵就會自動播放


6.修改程式碼為以下

#include <windows.h>
#include <stdio.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"
CMP3_MCI mp3;

void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glutSwapBuffers();
}
void keyboard(unsigned char c,int x,int y)
{
    if(c=='z') PlaySound("do.wav",NULL,SND_ASYNC);
    if(c=='x') PlaySound("re.wav",NULL,SND_ASYNC);
    if(c=='c') PlaySound("mi.wav",NULL,SND_ASYNC);
    if(c=='v') PlaySound("fa.wav",NULL,SND_ASYNC);
    if(c=='b') PlaySound("so.wav",NULL,SND_ASYNC);
}
int main(int argc,char** argv)
{
    mp3.Load("music.mp3");
    mp3.Play();

    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("小乖的鋼琴");
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
}

這樣就能在有背景音樂的狀態下彈鋼琴


7.修改程式碼為以下

#include <windows.h>
#include <stdio.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"
CMP3_MCI mp3;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glutSwapBuffers();
}
void keyboard(unsigned char c,int x,int y)
{
    if(c=='z') PlaySound("do.wav",NULL,SND_ASYNC);
    if(c=='x') PlaySound("re.wav",NULL,SND_ASYNC);
    if(c=='c') PlaySound("mi.wav",NULL,SND_ASYNC);
    if(c=='v') PlaySound("fa.wav",NULL,SND_ASYNC);
    if(c=='b') 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)
{
    mp3.Load("music.mp3");
    mp3.Play();
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("小乖的鋼琴");
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMouseFunc(Mouse);
    glutMainLoop();
}

這樣就能在有背景音樂的狀態下邊彈鋼琴邊射擊


8.修改程式碼為以下

#include <windows.h>
#include <stdio.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"
CMP3_MCI mp3;
CMP3_MCI shot1,shot2,shot3;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glutSwapBuffers();
}
void keyboard(unsigned char c,int x,int y)
{
    if(c=='z') PlaySound("do.wav",NULL,SND_ASYNC);
    if(c=='x') PlaySound("re.wav",NULL,SND_ASYNC);
    if(c=='c') PlaySound("mi.wav",NULL,SND_ASYNC);
    if(c=='v') PlaySound("fa.wav",NULL,SND_ASYNC);
    if(c=='b') 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)
{
    shot1.Load("1.mp3");shot2.Load("2.mp3");shot3.Load("3.mp3");
    mp3.Load("music.mp3");
    mp3.Play();
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("小乖的鋼琴");
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMouseFunc(Mouse);
    glutMainLoop();
}

這樣就能在有背景音樂的狀態下邊彈鋼琴邊用三種武器射擊

NEKO no Computer Graphics_week10

     
    


    早安    

    首先要匯入音檔

    


    PlaySound(檔名,NULL(空指標),SND_SYNC(等待同步))播放一段聲音,是在windows.h裡的函式

    但是有個問題,它會把整個音檔播完,如果音檔有空,下一段聲音會有時間差距

    做了按鍵控制播放1.0:

    


    缺點是要按enter才會有聲音(getchar()函式的屬性)

    我只能說glut很猛,可以直接鍵入,就用glut做了2.0:

    


    glutKeyboardFunc(函式名);建立按鍵控制鍵入

    有兩個問題,一個是沒有和弦,另一個是不能讀mp3

    先讀mp3,使用CMP3_MCI.h頭檔放入專案,檔案老師給的,可能要再自己找載點

    


    頭檔放專案檔裡,include 頭檔, 做一個mp3的型別(CMP_MCI mp3)

    mp3.Load(檔名)| 讀檔 mp3.play(); 播放| mp3.XXX意思是使用型別變數mp3內XXX的功能

    

    加上滑鼠控制射擊音:

    


    原理都差不多,加上滑鼠控制一個射擊音效這樣

    搞定mp3後,再搞定和弦的問題

    用mp3的頭檔一樣可以讀wav,也可以解決不能重疊的問題:

    



    今天差不多到這裡,Tnx

播放音效

 


今天上課教如何撥放音效
下載下來的音樂要放到執行目錄
(freeglut\bin裡面)
程式碼:

#include <windows.h>
#include <GL/glut.h>
void display()
{
    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);
}
int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week10");
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
}




播放mp3檔要先下載MP3_MCI檔案
並放在專案目錄裡面,下載mp3檔
程式碼:
#include <windows.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"
CMP3_MCI mp3;
void display()
{
    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);
}
int main(int argc, char**argv)
{
    mp3.Load("music.mp3");
    mp3.Play();
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week10");
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
}
再增加一個按滑鼠也有音效的程式碼:
#include <windows.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"
CMP3_MCI mp3;
void display()
{
    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);
}
void mouse(int buttom, int state, int x, int y)
{
    if(state==GLUT_DOWN) PlaySound("shot.wav", NULL, SND_ASYNC);
}
int main(int argc, char**argv)
{
    mp3.Load("music.mp3");
    mp3.Play();
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week10");
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMouseFunc(mouse);
    glutMainLoop();
}



這個程式碼可以讓滑鼠左中右鍵分別有不同音效

#include <windows.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"
CMP3_MCI mp3;
CMP3_MCI shot1,shot2,shot3;
void display()
{
    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);
}
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)
{
    shot1.Load("1.wav"); shot2.Load("2.mav"); shot3.Load("3.wav");
    mp3.Load("music.mp3");
    mp3.Play();
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week10");
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMouseFunc(mouse);
    glutMainLoop();
}


week10

 


        執行目錄裡的音樂


#include <windows.h>
#include <stdio.h>
int main()
{   ///播放音樂("檔名.wav",空指標,要等待同步);                              
    PlaySound("do.wav",NULL,SND_SYNC);
    PlaySound("re.wav",NULL,SND_SYNC);
    PlaySound("mi.wav",NULL,SND_SYNC);
    PlaySound("fa.wav",NULL,SND_SYNC);
    PlaySound("so.wav",NULL,SND_SYNC);
    ///執行目錄裡的音樂
}



#include <windows.h>
#include <stdio.h>
int main()
{   ///播放音樂("檔名.wav",空指標,要等待同步)
    while(1){
    char c = getchar();                                ///不等待同步
    if(c=='1')PlaySound("do.wav",NULL,SND_ASYNC);
    if(c=='2')PlaySound("re.wav",NULL,SND_ASYNC);
    if(c=='3')PlaySound("mi.wav",NULL,SND_ASYNC);
    if(c=='4')PlaySound("fa.wav",NULL,SND_ASYNC);
    if(c=='5')PlaySound("so.wav",NULL,SND_ASYNC);
    ///執行目錄裡的音樂
    }
}
#include <windows.h>
#include <GL/glut.h>
void display()
{
    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);
}
int main(int argc,char** argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
    glutCreateWindow("Wee10 Sound");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
}



#include <windows.h>
#include <GL/glut.h>
#include "CMP3_MCI.h" ///.h檔案要放在專案目錄裡 week10_sound
CMP3_MCI mp3;/// 宣告一個變數
void display()
{
    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)
{
    mp3.Load("music.mp3");
    mp3.Play();
    glutInit(&argc,argv);
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
    glutCreateWindow("Wee10 Sound");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
}
#include <windows.h>
#include <GL/glut.h>
#include "CMP3_MCI.h" ///.h檔案要放在專案目錄裡 week10_sound
CMP3_MCI mp3;/// 宣告一個變數
void display()
{
    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)
{
    mp3.Load("music.mp3");
    mp3.Play();
    glutInit(&argc,argv);
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
    glutCreateWindow("Wee10 Sound");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMouseFunc(mouse);
    glutMainLoop();
}


#include <windows.h>
#include <GL/glut.h>
#include "CMP3_MCI.h" ///.h檔案要放在專案目錄裡 week10_sound
CMP3_MCI mp3;/// 宣告一個變數
CMP3_MCI shot1,shot2,shot3;
void display()
{
    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)
{
    shot1.Load("1.wav");shot2.Load("2.wav");shot3.Load("3.wav");

    mp3.Load("music.mp3");
    mp3.Play();
    glutInit(&argc,argv);
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
    glutCreateWindow("Wee10 Sound");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    glutMouseFunc(mouse);
    glutMainLoop();
}

距地表面160 Week11

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