作業1
//week12-1-gundam-head-body-uparm-upuparm-hand //修改week09-5-gundam-uparm-upuparm-hand-keyboard-mouse-angle //修改自week09-2-gundam-head-body-push-trt-pop //要記得把檔案拉進來 //Ctrl-k開檔案總管 把week09-5的模型copy到week12-1 //再把week09-5的左邊的一堆push trt pop貼到後面 mouse亂轉 PShape body,head; PShape uparm1,upuparm1,hand1; void setup(){ size(400,400,P3D); body=loadShape("body.obj"); head=loadShape("head.obj"); uparm1=loadShape("uparm1.obj"); upuparm1=loadShape("upuparm1.obj"); hand1=loadShape("hand1.obj"); } void draw(){ background(204); translate(200,300); sphere(10); //原點的球 scale(10,-10,10); //y要上下再反過來 shape(body,0,0); pushMatrix(); translate(0,22.5); rotateY(radians(mouseX-200)); rotateX(radians(mouseY-60)); translate(0,-22.5); shape(head,0,0); popMatrix(); pushMatrix(); shape(upuparm1,0,0); //上上手臂 pushMatrix(); translate(-4.1,19.9); //再掛回去原本的位置 rotateZ(radians(mouseX)); translate(4.1,-19.9); //把物體的旋轉中心 放到座標中心 shape(uparm1,0,0); //上手臂 pushMatrix(); translate(-4.5,16.9); rotateX(radians(mouseY)); translate(4.5,-16.9); //剛剛把手移動到座標中心的移動量 //translate(mouseX/10.0,-mouseY/10.0); //一邊移動 一邊找數值 //println(mouseX/10.0,-mouseY/10.0); //印出適合的數值 ex. 4.5,-16.9 shape(hand1,0,0); popMatrix(); popMatrix(); popMatrix(); }
作業2
//week12-2-gundam-head-body-uparm-upuparm-hand-angle //修改自week12-1-gundam-head-body-uparm-upuparm-hand //要加上 float[]angleX=new float[10]; //要加上 float[]angleY=new float[10]; PShape body,head; PShape uparm1,upuparm1,hand1; void setup(){ size(400,400,P3D); body=loadShape("body.obj"); head=loadShape("head.obj"); uparm1=loadShape("uparm1.obj"); upuparm1=loadShape("upuparm1.obj"); hand1=loadShape("hand1.obj"); } float[]angleX=new float[10]; float[]angleY=new float[10]; int ID=0; //0:頭 1;上上手臂 2:上手臂 3:手 void mouseDragged(){ angleX[ID]+=radians(mouseX-pmouseX); //左右拖曳 angleY[ID]+=radians(mouseY-pmouseY); //上下拖曳 } void draw(){ background(204); translate(200,300); sphere(10); //原點的球 scale(10,-10,10); //y要上下再反過來 shape(body,0,0); pushMatrix(); translate(0,22.5); rotateY(angleX[0]); //x方向 左右拖曳 是對Y軸轉 rotateX(angleY[0]); //y方向 上下拖曳 是對x軸旋轉 translate(0,-22.5); shape(head,0,0); popMatrix(); pushMatrix(); shape(upuparm1,0,0); //上上手臂 pushMatrix(); translate(-4.1,19.9); //再掛回去原本的位置 //rotateZ(radians(mouseX)); rotateY(angleX[2]); rotateX(angleY[2]); translate(4.1,-19.9); //把物體的旋轉中心 放到座標中心 shape(uparm1,0,0); //上手臂 pushMatrix(); translate(-4.5,16.9); //rotateX(radians(mouseY)); rotateY(angleX[3]); rotateX(angleY[3]); translate(4.5,-16.9); //剛剛把手移動到座標中心的移動量 //translate(mouseX/10.0,-mouseY/10.0); //一邊移動 一邊找數值 //println(mouseX/10.0,-mouseY/10.0); //印出適合的數值 ex. 4.5,-16.9 shape(hand1,0,0); popMatrix(); popMatrix(); popMatrix(); }
作業3//week12_3_gundam_head_body_left_keyPressed_Id //修改week12-2-gundam-head-body-uparm-upuparm-hand-angle //要加上 float[]angleX=new float[10]; //要加上 float[]angleY=new float[10]; PShape body,head; PShape uparm1,upuparm1,hand1; void setup(){ size(400,400,P3D); body=loadShape("body.obj"); head=loadShape("head.obj"); uparm1=loadShape("uparm1.obj"); upuparm1=loadShape("upuparm1.obj"); hand1=loadShape("hand1.obj"); } float[]angleX=new float[10]; float[]angleY=new float[10]; int ID=0; //0:頭 1;上上手臂 2:上手臂 3:手 void mouseDragged(){ angleX[ID]+=radians(mouseX-pmouseX); //左右拖曳 angleY[ID]+=radians(mouseY-pmouseY); //上下拖曳 } void keyPressed(){ //小心注音輸入法 if(key=='1') ID=1; //還沒設好 上上手臂 if(key=='2') ID=2; //ok 上手臂 if(key=='3') ID=3; //ok 手 if(key=='4') ID=4; if(key=='5') ID=5; if(key=='6') ID=6; if(key=='7') ID=7; if(key=='8') ID=8; if(key=='9') ID=9; if(key=='0') ID=0; // ok 頭 } void draw(){ background(204); translate(200,300); sphere(10); //原點的球 scale(10,-10,10); //y要上下再反過來 shape(body,0,0); pushMatrix(); translate(0,22.5); rotateY(angleX[0]); //x方向 左右拖曳 是對Y軸轉 rotateX(angleY[0]); //y方向 上下拖曳 是對x軸旋轉 translate(0,-22.5); shape(head,0,0); popMatrix(); pushMatrix(); shape(upuparm1,0,0); //上上手臂 pushMatrix(); translate(-4.1,19.9); //再掛回去原本的位置 rotateY(angleX[2]); rotateX(angleY[2]); translate(4.1,-19.9); //把物體的旋轉中心 放到座標中心 shape(uparm1,0,0); //上手臂 pushMatrix(); translate(-4.5,16.9); rotateY(angleX[3]); rotateX(angleY[3]); translate(4.5,-16.9); //剛剛把手移動到座標中心的移動量 //translate(mouseX/10.0,-mouseY/10.0); //一邊移動 一邊找數值 //println(mouseX/10.0,-mouseY/10.0); //印出適合的數值 ex. 4.5,-16.9 shape(hand1,0,0); popMatrix(); popMatrix(); popMatrix(); }
作業4//week12_4_gundam_head_body_push_trt_pop_again //修改week12-2-gundam-head-body-uparm-upuparm-hand-angle //要加上 float[]angleX=new float[10]; //要加上 float[]angleY=new float[10]; PShape body,head; PShape uparm1,upuparm1,hand1; void setup(){ size(400,400,P3D); body=loadShape("body.obj"); head=loadShape("head.obj"); uparm1=loadShape("uparm1.obj"); upuparm1=loadShape("upuparm1.obj"); hand1=loadShape("hand1.obj"); } float[]angleX=new float[10]; float[]angleY=new float[10]; int ID=0; //0:頭 1;上上手臂 2:上手臂 3:手 void mouseDragged(){ angleX[ID]+=radians(mouseX-pmouseX); //左右拖曳 angleY[ID]+=radians(mouseY-pmouseY); //上下拖曳 } void keyPressed(){ //小心注音輸入法 if(key=='1') ID=1; //還沒設好 上上手臂 if(key=='2') ID=2; //ok 上手臂 if(key=='3') ID=3; //ok 手 if(key=='4') ID=4; if(key=='5') ID=5; if(key=='6') ID=6; if(key=='7') ID=7; if(key=='8') ID=8; if(key=='9') ID=9; if(key=='0') ID=0; // ok 頭 } void draw(){ background(204); translate(200,300); sphere(10); //原點的球 scale(10,-10,10); //y要上下再反過來 shape(body,0,0); pushMatrix(); translate(0,22.5); rotateY(angleX[0]); //x方向 左右拖曳 是對Y軸轉 rotateX(angleY[0]); //y方向 上下拖曳 是對x軸旋轉 translate(0,-22.5); shape(head,0,0); popMatrix(); pushMatrix(); translate(-2.9,20.8); rotateY(angleX[1]); rotateX(angleY[1]); translate(2.9,-20.8); //translate(mouseX/10.0,-mouseY/10.0); //一邊移動 一邊找數值 //println(mouseX/10.0,-mouseY/10.0); //印出適合的數值 ex. 4.5,-16.9 shape(upuparm1,0,0); //上上手臂 pushMatrix(); translate(-4.1,19.9); //再掛回去原本的位置 rotateY(angleX[2]); rotateX(angleY[2]); translate(4.1,-19.9); //把物體的旋轉中心 放到座標中心 shape(uparm1,0,0); //上手臂 pushMatrix(); translate(-4.5,16.9); rotateY(angleX[3]); rotateX(angleY[3]); translate(4.5,-16.9); //剛剛把手移動到座標中心的移動量 //translate(mouseX/10.0,-mouseY/10.0); //一邊移動 一邊找數值 //println(mouseX/10.0,-mouseY/10.0); //印出適合的數值 ex. 4.5,-16.9 shape(hand1,0,0); popMatrix(); popMatrix(); popMatrix(); }
作業5//week12_5_gundam_left_copy_right //修改week12_4_gundam_head_body_push_trt_pop_again //Pshape 宣告 要複製 要改成2 //void setup()裡 也要複製loadShape 裡面也要改成2 //void draw()裡 也要複製整組trt 右半邊裡面的1變成2 x正負相反 PShape body,head; PShape uparm1,upuparm1,hand1; PShape uparm2,upuparm2,hand2; void setup(){ size(400,400,P3D); body=loadShape("body.obj"); head=loadShape("head.obj"); uparm1=loadShape("uparm1.obj"); upuparm1=loadShape("upuparm1.obj"); hand1=loadShape("hand1.obj"); uparm2=loadShape("uparm2.obj"); upuparm2=loadShape("upuparm2.obj"); hand2=loadShape("hand2.obj"); } float[]angleX=new float[10]; float[]angleY=new float[10]; int ID=0; //0:頭 1;上上手臂 2:上手臂 3:手 void mouseDragged(){ angleX[ID]+=radians(mouseX-pmouseX); //左右拖曳 angleY[ID]+=radians(mouseY-pmouseY); //上下拖曳 } void keyPressed(){ //小心注音輸入法 if(key=='1') ID=1; //還沒設好 上上手臂 if(key=='2') ID=2; //ok 上手臂 if(key=='3') ID=3; //ok 手 if(key=='4') ID=4; if(key=='5') ID=5; if(key=='6') ID=6; if(key=='7') ID=7; if(key=='8') ID=8; if(key=='9') ID=9; if(key=='0') ID=0; // ok 頭 } void draw(){ background(204); translate(200,300); sphere(10); //原點的球 scale(10,-10,10); //y要上下再反過來 shape(body,0,0); pushMatrix(); translate(0,22.5); rotateY(angleX[0]); //x方向 左右拖曳 是對Y軸轉 rotateX(angleY[0]); //y方向 上下拖曳 是對x軸旋轉 translate(0,-22.5); shape(head,0,0); popMatrix(); pushMatrix(); //左 translate(-2.9,20.8); rotateY(angleX[1]); rotateX(angleY[1]); translate(2.9,-20.8); //translate(mouseX/10.0,-mouseY/10.0); //一邊移動 一邊找數值 //println(mouseX/10.0,-mouseY/10.0); //印出適合的數值 ex. 4.5,-16.9 shape(upuparm1,0,0); //上上手臂 pushMatrix(); translate(-4.1,19.9); //再掛回去原本的位置 rotateY(angleX[2]); rotateX(angleY[2]); translate(4.1,-19.9); //把物體的旋轉中心 放到座標中心 shape(uparm1,0,0); //上手臂 pushMatrix(); translate(-4.5,16.9); rotateY(angleX[3]); rotateX(angleY[3]); translate(4.5,-16.9); //剛剛把手移動到座標中心的移動量 //translate(mouseX/10.0,-mouseY/10.0); //一邊移動 一邊找數值 //println(mouseX/10.0,-mouseY/10.0); //印出適合的數值 ex. 4.5,-16.9 shape(hand1,0,0); popMatrix(); popMatrix(); popMatrix(); pushMatrix();//右 translate(2.9,20.8); rotateY(angleX[4]); rotateX(angleY[4]); translate(-2.9,-20.8); //translate(mouseX/10.0,-mouseY/10.0); //一邊移動 一邊找數值 //println(mouseX/10.0,-mouseY/10.0); //印出適合的數值 ex. 4.5,-16.9 shape(upuparm2,0,0); //上上手臂 pushMatrix(); translate(4.1,19.9); //再掛回去原本的位置 rotateY(angleX[5]); rotateX(angleY[5]); translate(-4.1,-19.9); //把物體的旋轉中心 放到座標中心 shape(uparm2,0,0); //上手臂 pushMatrix(); translate(4.5,16.9); rotateY(angleX[6]); rotateX(angleY[6]); translate(-4.5,-16.9); //剛剛把手移動到座標中心的移動量 //translate(mouseX/10.0,-mouseY/10.0); //一邊移動 一邊找數值 //println(mouseX/10.0,-mouseY/10.0); //印出適合的數值 ex. 4.5,-16.9 shape(hand2,0,0); popMatrix(); popMatrix(); popMatrix(); }
作業6//week12-6-sound //要有聲音 需要聲音的 library 函式庫 (mp3,wav,wma) //Sketch - Library - Managed Libraries 找 sound會看到 //會看到 Sound | Provides a simaple way to work with audio //選它 右下角 Install 下再安裝 (會有小勾勾) //安裝好後 會有 File-Examples 點開 Libraries核心函式庫 Sound //Soundfile 那堆範例 看 SimplePlayback 簡單撥放音樂的範例 import processing.sound.*; //抄範例 改一下變數名 SoundFile mySound; void setup(){ size(400,400); mySound=new SoundFile(this,"music.mp3"); //抄範例 改檔名 mySound.play(); //播放 } void draw(){ //記得要有個空的draw()函式 才會持續更新 才有聲音 }
作業7//week12-7-sound-Intro-ingame-sword-Monkey import processing.sound.*; SoundFile sndInGame,sndIntro,sndMonkey,sndSword; void setup(){ size(400,400); sndInGame=new SoundFile(this, "In Game Music.mp3"); sndIntro=new SoundFile(this, "Intro Song_Final.mp3"); sndMonkey=new SoundFile(this,"Monkey 1.mp3"); sndSword=new SoundFile(this,"sword slash.mp3"); sndIntro.play(); // 開場簡介的音樂 } boolean playingIntro=true; void keyPressed(){ //按下空白建 會進入遊戲音樂 if(playingIntro){ //本來在播 開場簡介 sndIntro.stop(); //開場簡介的音樂stop sndInGame.play(); //進入遊戲關卡的音樂play playingIntro=false; //現在沒播 開場簡介 } else{ //若沒播 開場簡介 sndInGame.stop(); sndIntro.play(); playingIntro=true; } } void mousePressed(){ if(mouseButton==LEFT) sndSword.play(); if(mouseButton==RIGHT) sndMonkey.play(); } void draw(){ }
沒有留言:
張貼留言