2015年4月9日 星期四

week07 廖彥豪

放完連假ㄖ
今天又回到我們S5131來製作電腦圖學
其實前幾天有和幾個大肆學長討論
我們之後到底要做什摩
想說圖學比較屬於設計
如果偏向傳播領域的部分可以善加利用
那我們就來好好學習這個禮拜的課程吧ㄏㄏ

第一節課
第一節課老師教我們國外的某個課程
互評課程 自評課程 (peer assessment & self assessment)
所以我們就把各位同學的作業給我們看的
將圖片存下來並且回傳給老師評分
所以我就將圖片存下來囉 yaya~~~
在進入這節課尾聲
老師大概用了一分半 ...
對沒錯 一分半一分半一分半一分半一分半
我有計時很誇張
使用keyboard 和 mouse來操控囉 ㄎㄎ

看似平淡無奇的程式碼
執行之後
怎麼還是跟之前做的一樣
一個茶壺ㄏㄏ 真的ㄏㄏ
但是 神奇的來了~~~~~~
嘿嘿
有沒有看到不一樣的地方呢?
再一次
有看到了吧
出現ㄖ aaaaa bbbbb
因為有用keyboard來設定囉 厲害吧

程式碼如下:
#include <GL/glut.h>
#include <stdio.h>

void display()
{
    glutSolidTeapot(0.3);
    glFlush();
}
void keyboard(unsigned char key, int x,int y)
{
    if(key=='a') printf("aaaaa\n");
    if(key=='b') printf("bbbbb\n");
}
int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutCreateWindow("hello");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);

    glutMainLoop();
}

第二節課
第二節課除了上一節課新教的東西之外
我們多加了一個撥放音效
可是blog沒有辦法播放音效
那大家就複製我的程式碼來跑跑看吧ㄎㄎ
廢話不多說
直接給大家看
水噢水噢
雖然沒辦法給大家聽到聲音
但是有沒有看到不一樣的東西呢
好啦 其實我是用了kiss音效 ㄏㄏ

對了 講一下小重點
目前這個方式只能撥放 .wav 的音樂檔
如果要撥放其他的像是 .mp3 .mp4 檔案
就要使用其他的方式囉
然後必須要把音樂檔案放到我們freeglut-MinGW資料夾裡面的bin資料夾
因為必須使用裡面的freeglut.dll檔案
這點要記得噢ㄎㄎ

再來就是來製作鋼琴吧ㄎㄎ
好啦 因為不能撥放
只能這樣子給大家看囉 ㄎㄎ
因為的.wav一樣放在bin裡面噢 ㄎㄎ

第三節課

最後來個厲害的
這就是傳說中的
小茶壺上下移動 哈哈
而且不只是只有顯示移動而已噢
他還會顯示UP DOWN UP DOWN
厲害吧ㄎㄎ
程式碼如下

#include <GL/glut.h>
#include <stdio.h>
#include <mmsystem.h>
//////////////////////////////////
float teaY=0, rotX=0, rotY=0, oldX=0, oldY=0;

void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
    glTranslatef(0, teaY, 0);
    glRotatef(rotX, 1, 0, 0);//////////////////
    glRotatef(rotY, 0, 1, 0);//////////////////
    glutSolidTeapot(0.3);
    glPopMatrix();
    glFlush();
}
void keyboard(unsigned char key, int x,int y)
{
    if(key=='a')
    {
        //////////////////////////////
        PlaySound("kiss.wav",NULL ,SND_ASYNC);
        printf("啾啾啾啾啾啾 kiss kiss\n");
    }
    {/// 1-7DoReMiFaSolLaSi
    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("Sol.wav",NULL ,SND_ASYNC);
    if(key=='6') PlaySound("La.wav",NULL ,SND_ASYNC);
    if(key=='7') PlaySound("Si.wav",NULL ,SND_ASYNC);
    }
}
void special(int key,int x,int y)
{
    if(key==GLUT_KEY_DOWN)
    {
        teaY-=0.1; printf("down\n");
    }
    else if(key==GLUT_KEY_UP)
    {
        teaY+=0.1; printf("up\n");
    }
    glutPostRedisplay();
}
void mouse(int button, int state, int x, int y)
{/////////////////////////////////////
    oldX=x; oldY=y;
    if(GLUT_LEFT_BUTTON==button && GLUT_DOWN==state) printf("now left down\n");
    if(GLUT_RIGHT_BUTTON==button && GLUT_DOWN==state) printf("now right down\n");
}
void motion(int x, int y)
{/////////////////////////////////////
    rotX += y - oldY;
    rotY += x - oldX;
    oldX=x; oldY=y;
    glutPostRedisplay();
}
int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutCreateWindow("hello");

    glutDisplayFunc(display);
    //////////////////////////
    glutKeyboardFunc(keyboard);
    glutSpecialFunc(special);

    glutMainLoop();
}

YAYA成功了
大家可以自己試試看噢ㄎㄎ

然後今天的課程就結束了
又是收穫滿滿的一天ㄎㄎ

沒有留言:

張貼留言