2025年5月8日 星期四

week12_呱

week12-1

//week12-1

//修改自week09-2_gundam_head_body_push_trt_pop

//再加上week09-5_gundam_uparm_upuparm_hand_keyboard_mouse_rot

PShape body,head,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);

     rotateY(radians(mouseX-200));

     rotateX(radians(mouseY-60));

     translate(0,-22);

   shape(head,0,0);

   popMatrix();

   

   pushMatrix(); //左邊手臂系列

      shape(upuparm1,0,0); //上上手臂

     pushMatrix();

       translate(-4.1,19.9); //掛回原本的位置

       rotateZ(radians(mouseX));

       translate(4.5,-19.9); //把物體旋轉中心放到座標中

       shape(uparm1,0,0); //上手臂

       pushMatrix();

         translate(-4.5,16.9);

         rotateX(radians(mouseY));

         translate(4.5,-16.9);

         //translate(mouseX/10,-mouseY/10); //移動、找數值

         //println(mouseX/10,-mouseY/10); //印出適合的數值

         shape(hand1,0,0);

       popMatrix();

     popMatrix();

   popMatrix();

}


week12-2

//week12-2

//修改自week12-1

//float [] angleX=new float[10]; 

//float [] angleY=new float[10];

PShape body,head,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);

     rotateY(angleX[0]); //X方向 左右拖曳 是對Y軸轉

     rotateX(angleY[0]); //Y方向 上下拖曳 是對X軸轉

     translate(0,-22);

   shape(head,0,0);

   popMatrix();

   

   pushMatrix(); //左邊手臂系列

      shape(upuparm1,0,0); //上上手臂

     pushMatrix();

       translate(-4.1,19.9); //掛回原本的位置

       //rotateZ(radians(mouseX));

       rotateZ(angleX[2]); 

       rotateY(angleY[2]);

       translate(4.5,-19.9); //把物體旋轉中心放到座標中

       shape(uparm1,0,0); //上手臂

       pushMatrix();

         translate(-4.5,16.9);

         //rotateX(radians(mouseY));

         rotateX(angleX[3]); 

         rotateY(angleY[3]);

         translate(4.5,-16.9);

         //translate(mouseX/10,-mouseY/10); //移動、找數值

         //println(mouseX/10,-mouseY/10); //印出適合的數值

         shape(hand1,0,0);

       popMatrix();

     popMatrix();

   popMatrix();

}



week12-3

//week12-2

//修改自week12-1

//float [] angleX=new float[10]; 

//float [] angleY=new float[10];

PShape body,head,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; //上手臂

  if (key=='3') ID = 3; //手

  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; //頭

}

void draw(){

   background(204);

   translate(200,300);

   sphere(10); //原點的球

    

   scale(10,-10,10); //y要上下反過來

   

   shape(body,0,0);

   pushMatrix();

     translate(0,22);

     rotateY(angleX[0]); //X方向 左右拖曳 是對Y軸轉

     rotateX(angleY[0]); //Y方向 上下拖曳 是對X軸轉

     translate(0,-22);

   shape(head,0,0);

   popMatrix();

   

   pushMatrix(); //左邊手臂系列

      shape(upuparm1,0,0); //上上手臂

     pushMatrix();

       translate(-4.1,19.9); //掛回原本的位置

       //rotateZ(radians(mouseX));

       rotateZ(angleX[2]); 

       rotateY(angleY[2]);

       translate(4.5,-19.9); //把物體旋轉中心放到座標中

       shape(uparm1,0,0); //上手臂

       pushMatrix();

         translate(-4.5,16.9);

         //rotateX(radians(mouseY));

         rotateX(angleX[3]); 

         rotateY(angleY[3]);

         translate(4.5,-16.9);

         //translate(mouseX/10,-mouseY/10); //移動、找數值

         //println(mouseX/10,-mouseY/10); //印出適合的數值

         shape(hand1,0,0);

       popMatrix();

     popMatrix();

   popMatrix();

}



week12-4

//week12-2

//修改自week12-3

PShape body,head,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; //上手臂

  if (key=='3') ID = 3; //手

  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; //頭

}

void draw(){

   background(204);

   translate(200,300);

   sphere(10); //原點的球

    

   scale(10,-10,10); //y要上下反過來

   

   shape(body,0,0);

   pushMatrix();

     translate(0,22);

     rotateY(angleX[0]); //X方向 左右拖曳 是對Y軸轉

     rotateX(angleY[0]); //Y方向 上下拖曳 是對X軸轉

     translate(0,-22);

   shape(head,0,0);

   popMatrix();

   

   pushMatrix(); //左邊手臂系列

        translate(-2.9,20.7);

        rotateY(angleX[1]);

        rotateX(angleX[1]);

        translate(2.9,-20.7);

      //translate(mouseX/10,-mouseY/10);

      //println(mouseX/10,-mouseY/10);

      shape(upuparm1,0,0); //上上手臂

     pushMatrix();

       translate(-4.1,19.9); //掛回原本的位置

       //rotateZ(radians(mouseX));

       rotateZ(angleX[2]); 

       rotateY(angleY[2]);

       translate(4.5,-19.9); //把物體旋轉中心放到座標中

       shape(uparm1,0,0); //上手臂

       pushMatrix();

         translate(-4.5,16.9);

         //rotateX(radians(mouseY));

         rotateX(angleX[3]); 

         rotateY(angleY[3]);

         translate(4.5,-16.9);

         //translate(mouseX/10,-mouseY/10); //移動、找數值

         //println(mouseX/10,-mouseY/10); //印出適合的數值

         shape(hand1,0,0);

       popMatrix();

     popMatrix();

   popMatrix();

}



 week12-5

//week12-5

//修改自week12-4

PShape body,head,uparm1,upuparm1,hand1,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; //上手臂

  if (key=='3') ID = 3; //手

  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; //頭

}

void draw(){

   background(204);

   translate(200,300);

   sphere(10); //原點的球

    

   scale(10,-10,10); //y要上下反過來

   

   shape(body,0,0);

   pushMatrix();

     translate(0,22);

     rotateY(angleX[0]); //X方向 左右拖曳 是對Y軸轉

     rotateX(angleY[0]); //Y方向 上下拖曳 是對X軸轉

     translate(0,-22);

   shape(head,0,0);

   popMatrix();

   

   pushMatrix(); //左邊手臂系列

        translate(-2.9,20.7);

        rotateY(angleX[1]);

        rotateX(angleX[1]);

        translate(2.9,-20.7);

      //利用下面兩行,找到旋轉中心座標,印出來

      //translate(mouseX/10,-mouseY/10);

      //println(mouseX/10,-mouseY/10);

      shape(upuparm1,0,0); //上上手臂

     pushMatrix();

       translate(-4.1,19.9); //掛回原本的位置

       //rotateZ(radians(mouseX));

       rotateZ(angleX[2]); 

       rotateY(angleY[2]);

       translate(4.5,-19.9); //把物體旋轉中心放到座標中

       shape(uparm1,0,0); //上手臂

       pushMatrix();

         translate(-4.5,16.9);

         //rotateX(radians(mouseY));

         rotateX(angleX[3]); 

         rotateY(angleY[3]);

         translate(4.5,-16.9);

         //translate(mouseX/10,-mouseY/10); //移動、找數值

         //println(mouseX/10,-mouseY/10); //印出適合的數值

         shape(hand1,0,0);

       popMatrix();

     popMatrix();

   popMatrix();

   

      pushMatrix(); //左邊手臂系列

        translate(2.9,20.7);

        rotateY(angleX[4]);

        rotateX(angleX[4]);

        translate(-2.9,-20.7);

      //利用下面兩行,找到旋轉中心座標,印出來

      //translate(mouseX/10,-mouseY/10);

      //println(mouseX/10,-mouseY/10);

      shape(upuparm2,0,0); //上上手臂

     pushMatrix();

       translate(4.1,19.9); //掛回原本的位置

       //rotateZ(radians(mouseX));

       rotateZ(angleX[5]); 

       rotateY(angleY[5]);

       translate(-4.5,-19.9); //把物體旋轉中心放到座標中

       shape(uparm2,0,0); //上手臂

       pushMatrix();

         translate(4.5,16.9);

         //rotateX(radians(mouseY));

         rotateX(angleX[6]); 

         rotateY(angleY[6]);

         translate(-4.5,-16.9);

         //translate(mouseX/10,-mouseY/10); //移動、找數值

         //println(mouseX/10,-mouseY/10); //印出適合的數值

         shape(hand2,0,0);

       popMatrix();

     popMatrix();

   popMatrix();

}


week12-6

//12-6_sound

//要有聲音,需要聲音的Library

// Sketch -> Library -> Managed Libraries 找 sound

//會看到Sound | Provudes a simple way to work with audio -> Install

//安裝好Sound後,會有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(){

  

}

week12-7

//week12-7_sound1_sound2_sound3

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();

    sndInGame.play();

    playingIntro=false;

  } 

  else{

    sndInGame.stop();

    sndIntro.play();

    playingIntro=true;

  }

}

void mousePressed(){

   if(mouseButton==LEFT)  sndSword.play();

   if(mouseButton==RIGHT) sndMonkey.play();

}

void draw(){

  

}

沒有留言:

張貼留言