2017年10月2日 星期一

Week04 ShiRo

►憤怒鳥


  • 用陣列宣告豬--mm2

※Java陣列寫法: 名稱前加[ ][ ]
製造豬豬(小小兵): 5*4的陣列
float [][]mm2X=new float[5][4];
float [][]mm2Y=new float[5][4];
boolean [][]mm2Alive=new boolean[5][4];

  • 產生小小兵的位置

700是原本x的位置 向左100產生一個(100是一個小小兵的大小),100則是y向下產生。
(不會畫出小小兵)

   

  • 判斷位置的小小兵跟叉叉距離

如果距離小於100則小小兵死掉,沒有則顯示出小小兵。
↓固定座標方式利用for迴圈畫出小小兵, 使用陣列來判斷是不是被撞。

  • 程式碼:


PImage img1,img2;
float mmX=400 , mmY=300;
float mmVX=0 , mmVY=0;
float mmAX=0 , mmAY=0;
float [][]mm2X=new float[5][4]; /// 小小兵x陣列宣告
float [][]mm2Y=new float[5][4];///小小兵y陣列宣告
boolean [][]mm2Alive=new boolean[5][4];  ///小小兵存活宣告
void setup()
{
  size(800,600);
  img1= loadImage("1.png");  ///讀圖片--小小兵
  img2= loadImage("2.png");  ///讀圖片--叉叉
  imageModeCENTER );       ///圖片原點移到正中心  
  forint i=0 ; i<5 ; i++ ) {   
     forint j=0 ; j<4 ; j++ ) {
          mm2X[i][j]=700 - i * 100;   mm2Y[i][j]=100 + j * 100; ///小小兵的位置初始化
          mm2Alive[i][j]=true;         ///初始化(小小兵活著)
       }
   }
}
void draw()


   background(255);
    for(int i=0;i<5;i++){   
         for(int j=0;j<4;j++){
             if( dist( mm2X[i][j] , mm2Y[i][j] , mmX , mmY ) < 100){  
             mm2Alive[i][j]=false;  ///小小兵跟叉叉距離<100小小兵死亡
         }
///如果沒碰到則畫出小小兵
         if(mm2Alive[i][j])image( img2 , mm2X[i][j] , mm2Y[i][j] , 100 ,  100);  
     }

   }
......
 }

老師重新做一個陣列的示範
※截用老師FB圖文
STEP1.

STEP2.不同的顏色
STEP3.用陣列來做事

STEP4.讓bird的座標,也用變數來做

                           

STEP5.先寫好牛頓第一運動定律&牛頓第二運動定律。然後讓pig 碰到 bird時, 給它死 --- 沒死的才畫出來 Part 1


 STEP6.先寫好牛頓第一運動定律&牛頓第二運動定律。然後讓pig 碰到 bird時, 給它死 --- 沒死的才畫出來 Part 2



STEP7.做出 (1) 直線運動, (2) 拋物線
STEP8.birdAY 加速度,可能會造成 自由落體, 所以 mouseDragged時要清空birdAY



音樂
轉檔網址: https://www.onlinevideoconverter.com/zh/video-converter

 Example 裡要有sound

 沒有要到library加

 打Sound下載
Processing可以安裝音樂相關的 Library,  一個是官方的 Sound Library, 一個是 ddf 寫的 Minim Library。
程式碼(右邊)   範例程式(左邊)

第二種播放音檔 : minim
用一樣的 Sketch-Import Library 介面安裝好 Minim 後, 可以使用如下 

import ddf.minim.*;Minim minim; AudioPlayer player; void setup(){ ... Minim = new Minim(this); player = minim.loadFile&#40;"音樂.mp3", 2048&#41;; player.loop(); }


沒有留言:

張貼留言