2018年5月18日 星期五

Week12_沈哲民

要播放音效要先宣告

#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;
}




沒有留言:

張貼留言