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

2019年5月17日 星期五

Tokoyami_world.exe_week12

Sounds ,Musics .wav ,MP3

今天終於要來說說有關於「聲音」的概念了!

首先,這次跟前幾次不太一樣,不是開GLUT專案了,而是之前有說過的「Console Application」專案



接著經過一連串的設定後就進入編列介面了

首先,我們先在網路上找一個你喜歡的聲音,把它以wav檔的形勢下載下來

像我這麼「紳士」的人,當然要用「FBI open UP」的效果音啦~~哈哈哈~~



等等等等,別隨便進來我家啊啊啊啊啊!

......咳咳!好,我把他們請出去了,我們繼續吧~~

接著輸入......

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

這兩行程式碼

mmsystem.h是關於多媒體(Multimedia)的程式,這次最重要的重點

接著再輸入PlaySoundA(),這是讓程式播放聲音的程式碼,接著輸入聲音檔的位址......



但這樣還不夠!我們還缺了一個東西

打開Project Options\Linker Settings

我們要加入一個Link,叫做「winmm」



這樣就可以來聽聽那個聲音了......



臥草!又來啦,別抓我啊啊啊啊!!!

......

好了,我回來了,那些人真難搞......

接著我們就來試試看更進階的吧~~

首先,先下載一如往常的Freeglut......brabrabra總之步驟一樣

接著我們開始來改造程式碼吧~~

就像剛剛一樣,把那段程式碼加入程式中......



這樣就可以把聲音嵌入執行的程式裡了~~

(某組織:我們似乎又聽到有人在呼喚我們?)

並沒有!咳咳,我們繼續吧

接著我們試著加上鍵盤控制吧~~



成功啦~~

2019年5月10日 星期五

week 12_

1.主題:聲音、音樂WAV,MP3
2.複習:階層T-R-T骨架
3.作業:能操控的機器人


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

今天要來玩 聲音







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

int main(int argc, char *argv[])
{
    PlaySoundA("C:\\Users\\user\\Downloads\\lightning .wav", NULL, SND_ASYNC);

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

DoRaMiFaSo~




放入mp3

先下載下方的資料


開頭加入

#include "CMP3_MCI.h"
CMP3_MCI myMP3;
int a;
float b;
char c;
double d;




在 youtube 下載歌曲"""要mp3檔
檔名簡單放便置入程式碼






Week12_小葉我想打、打電腦圖學!


這周不知道放甚麼圖了,所以就放個How哥吧!
___________________________________________

今天要教音樂

先先建立這個Project

之後打上這些程式碼

記得要到Build options

增加這個libraries


就可以播放音樂啦!
________________________________________

做看看會發出聲音的鍵盤鋼琴ヽ(●´∀`●)ノ

首先建一個GLUT Project,然後先別刪掉,在下方第145行複製貼上改一改


隨後滑上去到key欄,增加以鍵盤控制的鋼琴音檔



就可以按按鍵彈鋼琴啦!
雖然Blog沒辦法播聲音就是了......


__________________________________________________

接下來來嘗試播放mp3檔啦!d(`・∀・)b

一樣是用glut,所以在同個檔案改但不要刪掉原程式碼

先下載 CMP3_MCI.h,檔案老師放在社團

然後移到我們glut的檔案夾


第一行不是系統有的,而是我們放在專案的檔案
接下來宣告我們的變數


接下來讀入mp3檔
再播放


就有音樂囉!
可惜你們還是聽不到(´・ω・`)
_______________________________________



大家看過復聯4了嗎?(´・ω・`)





huangxuuu電腦圖學week12

今日主題:貝殼檔播放聲音

(1)開一個貝殼專案


(2)貝殼裡面可以先執行一個聲音檔案
1.到http://billor.chsh.chc.edu.tw/sound/glassbreak.wav 下載wav檔
路徑存成C >桌面
把路徑\檔名中所有\改成\\
2.在專案按右鍵>建置設定






(3)開一個GLUT專案:準備好freeglut資料夾







(4)把貝殼的重要程式碼貼到GLUT





發現可以撥放~
於是
來做鍵盤
在GLUT找到紅色框框的位置

準備好鍵盤音檔
並寫程式碼



完成~

接下來要讓城市可以執行其他音檔
























不客氣_Week12

今日課程內容


1.聲音

1.使用codeblock開啟"Console applcation"

打上程式碼使下載的聲音能夠播放出來
#include <windows.h>
#include <mmsystem.h>
int main()
{
    PlaySoundA("C:\\Users\\user\\Downloads\\thunder_clap.wav",NULL,SND_SYNC);
    return 0;

}
無法播出聲音,要先設定
設定好用即可撥出聲音

2.先到網站下載 DO RE MI FA SO的音檔

3.按照老方法開啟GLUT
4.在int main()上打上輸出音檔的程式碼
#include <mmsystem.h>
int main(int argc, char *argv[])
{
    PlaySoundA("C:\\Users\\user\\Downloads\\thunder_clap.wav",NULL,SND_SYNC);
5.更改程式碼來製作簡易鋼琴

#include <mmsystem.h>
static void key(unsigned char key, int x, int y)
{
    if(key=='1') PlaySoundA("C:\\Users\\user\\Downloads\\music\\do.wav",NULL,SND_ASYNC);
    if(key=='2') PlaySoundA("C:\\Users\\user\\Downloads\\music\\re.wav",NULL,SND_ASYNC);
    if(key=='3') PlaySoundA("C:\\Users\\user\\Downloads\\music\\mi.wav",NULL,SND_ASYNC);
    if(key=='4') PlaySoundA("C:\\Users\\user\\Downloads\\music\\fa.wav",NULL,SND_ASYNC);
    if(key=='5') PlaySoundA("C:\\Users\\user\\Downloads\\music\\so.wav",NULL,SND_ASYNC);

6.新增程式碼使音樂與鋼琴能同時播出使用

#include "CMP3_MCI.h"///外掛,不是系統有的,是下載後放在專案目錄裡面
CMP3_MCI myMP3;///宣告一個物件變數 myMP3
int a;
float b;
char c;
double d;

音樂放這個就對了

https://youtu.be/ytb6vRpmbQE

week12

PlaySoundA 

CodeBlocks開Console application專案
我們再去下載音效(最好是wav檔)
搜尋wav檔找出位置
把聲音檔路徑位置複製貼到程式碼中

#include <windows.h>
#include <mmsystem.h>
int main()
{
    PlaySoundA("C:\\Users\\user\\Downloads\\barrage.wav", NULL, SND_SYNC);
    ///cout << "Hello world!" << endl;
    return 0;
}






加上五行控制聲音的程式碼


#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif

#include <stdlib.h>

static int slices = 16;
static int stacks = 16;

/* GLUT callback Handlers */

static void resize(int width, int height)
{
    const float ar = (float) width / (float) height;

    glViewport(0, 0, width, height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glFrustum(-ar, ar, -1.0, 1.0, 2.0, 100.0);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity() ;
}

static void display(void)
{
    const double t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
    const double a = t*90.0;

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3d(1,0,0);

    glPushMatrix();
        glTranslated(-2.4,1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutSolidSphere(1,slices,stacks);
    glPopMatrix();

    glPushMatrix();
        glTranslated(0,1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutSolidCone(1,1,slices,stacks);
    glPopMatrix();

    glPushMatrix();
        glTranslated(2.4,1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutSolidTorus(0.2,0.8,slices,stacks);
    glPopMatrix();

    glPushMatrix();
        glTranslated(-2.4,-1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutWireSphere(1,slices,stacks);
    glPopMatrix();

    glPushMatrix();
        glTranslated(0,-1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutWireCone(1,1,slices,stacks);
    glPopMatrix();

    glPushMatrix();
        glTranslated(2.4,-1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutWireTorus(0.2,0.8,slices,stacks);
    glPopMatrix();

    glutSwapBuffers();
}

#include <mmsystem.h>
static void key(unsigned char key, int x, int y)
{
    if(key=='1') PlaySoundA("C:\\Users\\user\\Downloads\\do.wav", NULL, SND_ASYNC);
    if(key=='2') PlaySoundA("C:\\Users\\user\\Downloads\\re.wav", NULL, SND_ASYNC);
    if(key=='3') PlaySoundA("C:\\Users\\user\\Downloads\\mi.wav", NULL, SND_ASYNC);
    if(key=='4') PlaySoundA("C:\\Users\\user\\Downloads\\fa.wav", NULL, SND_ASYNC);
    if(key=='5') PlaySoundA("C:\\Users\\user\\Downloads\\so.wav", NULL, SND_ASYNC);

    switch (key)
    {
        case 27 :
        case 'q':
            exit(0);
            break;

        case '+':
            slices++;
            stacks++;
            break;

        case '-':
            if (slices>3 && stacks>3)
            {
                slices--;
                stacks--;
            }
            break;
    }

    glutPostRedisplay();
}

static void idle(void)
{
    glutPostRedisplay();
}

const GLfloat light_ambient[]  = { 0.0f, 0.0f, 0.0f, 1.0f };
const GLfloat light_diffuse[]  = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f };

const GLfloat mat_ambient[]    = { 0.7f, 0.7f, 0.7f, 1.0f };
const GLfloat mat_diffuse[]    = { 0.8f, 0.8f, 0.8f, 1.0f };
const GLfloat mat_specular[]   = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat high_shininess[] = { 100.0f };

/* Program entry point */
#include <stdio.h>
#include <mmsystem.h>

int main(int argc, char *argv[])
{
    //PlaySoundA("C:\\Users\\user\\Downloads\\barrage.wav", NULL, SND_SYNC);
    printf("邊播聲音,繼續下面開視窗\n");
    glutInit(&argc, argv);
    glutInitWindowSize(640,480);
    glutInitWindowPosition(10,10);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("GLUT Shapes");

    glutReshapeFunc(resize);
    glutDisplayFunc(display);
    glutKeyboardFunc(key);
    glutIdleFunc(idle);

    glClearColor(1,1,1,1);
    glEnable(GL_CULL_FACE);
    glCullFace(GL_BACK);

    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LESS);

    glEnable(GL_LIGHT0);
    glEnable(GL_NORMALIZE);
    glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_LIGHTING);

    glLightfv(GL_LIGHT0, GL_AMBIENT,  light_ambient);
    glLightfv(GL_LIGHT0, GL_DIFFUSE,  light_diffuse);
    glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
    glLightfv(GL_LIGHT0, GL_POSITION, light_position);

    glMaterialfv(GL_FRONT, GL_AMBIENT,   mat_ambient);
    glMaterialfv(GL_FRONT, GL_DIFFUSE,   mat_diffuse);
    glMaterialfv(GL_FRONT, GL_SPECULAR,  mat_specular);
    glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);

    glutMainLoop();

    return EXIT_SUCCESS;
}