#include<mmsystem.h>
int main(int argc,char *argv[])
{
PlaySound("Do.wav ",NULL,SND_LOOP);
}
------------------------------------------------------------------------------------------------------------------
要放入mp3檔案
準備事項如下
1.CMP3_MCI.H檔案 (moodle有,並放入專案資料夾裡面)
2. mp3音樂檔(放在freelibglut的bin資料夾裡面)
#include "CMP3_MCI.H"
int main(int argc,char *argv[])
{
myMP3.LOAD("檔案名稱.mp3");
myMP3.Play();
}
------------------------------------------------------------------------------------------------------------------
TIMER 計時功能
宣告一個TIMER 函數並放入
void timer(int t)
{
glutTimerFunc(1000,timer,t+1);//每隔一秒就會進入 timer函式裡面;
myMP3.Play();
}
int main(int argc,char *argv[])
{
myMP3.LOAD("檔案名稱.mp3");
lutTimerFunc(5000,timer,0);////隔五秒進行 timer函式裡面的程式;
}
------------------------------------------------------------------------------------------------------------------
用計時器做出自轉的方法
1.要懂得內差法
新角度*alpah(t)+就角度(1-alpha(t))
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle,0,0,1);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
void timer (int t)
{
glutTimerFunc(1000,timer,t+1);
float alpha = (t)/30.0;//時間及選轉的幅度和速度
angle = newangle*alpha +oldangle*(1-alpha);//內差法
glutPostRedisplay();
myMP3.Play();
}
------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------
本日總程式碼:
#include "CMP3_MCI.H"
#include <GL/glut.h>
CMP3_MCI myMP3;
int a;
float angle=0,oldangle=0,newangle=90;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle,0,0,1);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
void timer (int t)
{
glutTimerFunc(1000,timer,t+1);
float alpha = (t)/200.0;
angle = newangle*alpha +oldangle*(1-alpha);
glutPostRedisplay();
myMP3.Play();
}
int main(int argc, char *argv[])
{
myMP3.Load("SleepAway.mp3");
glutInit(&argc, argv);
glutInitWindowSize(640,480);
glutInitWindowPosition(10,10);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutTimerFunc(1000,timer,0);
glutDisplayFunc(display);
glutMainLoop();
return EXIT_SUCCESS;
}
沒有留言:
張貼留言