2022年10月30日 星期日

Week_08 2022.10.24

1. 播音樂

(1) 複製上週程式碼 

(2) 切換場景、暫停音樂

設變數 int stage 切換場景

# 新增 mousePressed() 

# 設定 if-else  //切換場景和停止與撥放音樂

# sound1.stop();  //暫停音樂

(3) 切換場景、暫停音樂

# 在 draw() 設定兩個舞台、寫上stage狀態:  

text( "stage 1",100,100);  //在100,100的地方印出stage 1、2 

# 在 setup() 設定字型大小和顏色

textSize(50);  //設定字型size

fill(255,0,0);  //字型顏色

(4) 切文字

 void mousePressed(){ 

if(stage==1) stage=2; 

else if(stage==2)  stage=1; 


---------------------------------- github ----------------------------------


2. 水果起飛、消滅 - 暫停球飛動

(1) 設變數

設 fruitX/Y 控制位置、設加速度 float fruitVX=1,fruitVY=-1;

# boolean flying=true  //控制使否往上 

(2) 修改draw()

# 加背景、圓形ellipse(fruitX,fruitY,50,50) 

(3) 新增keyPressed()

當按下時,停止,flying=false;


---------------------------------- github ----------------------------------


3. 水果起飛、消滅 - 換顆球

(1) 改變數

fruitY 改成 300,從底部飛出 

# fruitVX 改 2, fruitVY 改 -13  //負的往左,正的往右

(2) 修改draw()

# 在 if(flying) 放入 fruitVY+=0.98/3;  //使重力往下

(3) 新增fruitReset() - 飛新水果

void fruitReset(){

 fruitX=random(100,300);  //隨機值,介於100 - 300
  fruitY=300;  //固定飛的高度
  fruitVX=random(-2,+2);  //隨機值,介於-2 - +2
  fruitVY=-13;  //變成原本的速度
  flying=true;  //可以繼續飛 

}


---------------------------------- github ----------------------------------


4. 修改程式碼 - class

(1) 設變數Class Fruit - 每個水果都可以用物件畫出來

設定 x , y , vx , vy , boolean 變數 

# 設定 reset() 和 update() 

# 主程式改成用 Fruit 的 Class 

(2) 呼叫 PApplet sketch 函式庫

為了後面可以用random函式


---------------------------------- github ----------------------------------


4. 一次三顆水果

(1) class簡化頁面

# 新增分頁,取名為Fruit 

# 把Class的程式碼複製貼上

(2) 修改class

新增 String[] 放入 所有英文字母 

# 新增 char 變數放水果上的字串

# c = line.charAt(i);  //對應陣列第 i 個字母

(3) 修改主程式

# 宣告 Fruit [] fruits; 

# setup() 

新增 fruits = new Fruit[3]; 

利用for迴圈去偵測3個fruit (fruit都要改成fruits[i])

# draw() 

設定字體大小、字體顏色、字體置中、和印出字 

textSize(30);  //字體大小 

textAlign(CENTER, CENTER);  //置中 

fill(0);  //顏色 

text(fruits[i].c, fruits[i].x, fruits[i].y);  //印字

keyPressed()

偵測鍵盤的字,看是否跟 fruits[i].c 一樣 

如果一樣就 reset();


---------------------------------- github ----------------------------------

沒有留言:

張貼留言