
2022互動技術筆記
Week08 2022-10-24
1. 打字遊戲、水果忍者/鍵盤忍者
2.
3.
主題:複習上週播聲音
1.開啟新檔存檔:week08_1_play_sound
2.在學校要重新下載音樂外掛(程式素描本/使用函式庫/Manage Libraries)
3.和上禮拜一樣到上周moodle的網址,然後改網址下載mp3
4.然後將兩個音檔: In Game Music.mp3 / Intro Song_Final.mp3 拉進去
5.按 ctrl-K 可以確認有沒有出現data資料夾有兩個音檔
6.程式碼: 記得加void draw(){}不然聽不到音樂
1.開啟新檔存檔:week08_2_play_sounds_stages
2.然後將兩個音檔: In Game Music.mp3 / Intro Song_Final.mp3 拉進去
3.按 ctrl-K 可以確認有沒有出現data資料夾有兩個音檔
4.目標:
執行時出現stage1然後播"In Game Music.mp3"
滑鼠點擊:stage1音樂停止且切換到stage2然後播"Intro Song_Final.mp3"
再點擊又可以stage2音樂停止切換到stage1然後播"In Game Music.mp3"
點擊滑鼠可以不斷切換stage1+音樂和stage2+音樂
5.程式碼:
開啟新檔存檔:week08_3_simple_stage1_stage2
目標: 點擊滑鼠切換stage1和stage2 (製作遊戲切換關卡的概念)
1.開啟新檔存檔:week08_4_fruit_flying_keyboard_pressed
小目標:有個水果飛起來,按下按鍵讓水果停在原地
使用boolean變數 flying 表示水果是否有在飛的狀態
變數 fruitVX 和 fruitVX 讓正在飛的水果位置可以改變
keyPressed函式:按下任意鍵盤按鍵讓水果停下來
目標: 讓水果飛行可以像水果忍者那樣從下面往上拋物線飛出來,按下按鍵就重新在飛一顆水果出來
因為要做拋物線飛出來的感覺所以要給重力加速度 fruitVY += 0.98/3;
給一個fruitReset函式:
水果x座標隨機從100~300之間出現往上飛出來、水果y座標固定高度300
fruitVX水果速度隨機-2~+2之間,fruitVY=-13回復原本的速度
按下按鍵(因為這個函式寫在keyPressed函式裡)就繼續重飛 flying=true;
問:原本做一顆水果就要寫那麼多程式碼,那遊戲需要用到源源不絕的水果要怎麼解決?
答:所以用一個很酷的東西 class物件 來創造圓圓不絕的水果
1.發明一個class物件,他會準備好當需要產生一個新的水果時,所需的值(水果座標、水果速度、布林值...)
和函式(reset函式、產生新的就要在做的update函式)
當需要產生新水果時,就能夠即時更新產生新水果時需要做的那些事情
有:另存新檔然後在檔名旁的小箭頭點下去,按新增分頁,取名Fruit
將class Fruit全部程式碼貼到新增分頁Fruit裡
從此之後產生新水果的事都放在分頁那,主程式就做主程式要做的,程式碼看起來清爽
在分頁Fruit: 要建一個放26個字母的字串 > String line="ABC....
放水果對應的字母 > char c
i 從26個字母隨機取一個出來 > int i = int(random(26));
再放到 c 裡 > c = line.charAt(i);
在主程式week08_7_fruit_class_tabs:
給Fruit陣列,這樣就可以放好多水果
用一個for迴圈放3顆水果
讓水果上面印隨機取到的字母
在keyPressed函式裡:如果鍵盤按下的字母和水果上的字母一樣,就消掉原本的更新另一顆新的水果
分頁Fruit程式碼:
主程式week08_7_fruit_class_tabs程式碼:









沒有留言:
張貼留言