180 likes | 347 Views
24-4 判斷蟑螂被打中及蟑螂被打死而消失的程式. 前面我們設定過一個判斷式 , 讓蟑螂在跑出畫面後 ( 也就是當其 Y 軸位置小於或等於 –24 時 ) 就自動刪除自己。這是蟑螂消失的其一狀況 , 另一個狀況是蟑螂被打中後 , 不僅要播放出被打到的死狀 ( 在 被打蟑螂 元件中 killed 影格標籤處可以看到 ), 還要移除該蟑螂才行。. 判斷蟑螂被打中及蟑螂被打死而消失的程式. 因此本節要做的 , 就是撰寫「判斷蟑螂有沒有被打中」 , 以及「被打中後 , 播放出死狀後消失」的程式。. 判斷蟑螂被打中的程式. 關於 hitTest 指令
E N D
24-4 判斷蟑螂被打中及蟑螂被打死而消失的程式 • 前面我們設定過一個判斷式, 讓蟑螂在跑出畫面後 (也就是當其 Y 軸位置小於或等於 –24 時) 就自動刪除自己。這是蟑螂消失的其一狀況, 另一個狀況是蟑螂被打中後, 不僅要播放出被打到的死狀 (在被打蟑螂元件中 killed 影格標籤處可以看到), 還要移除該蟑螂才行。
判斷蟑螂被打中及蟑螂被打死而消失的程式 • 因此本節要做的, 就是撰寫「判斷蟑螂有沒有被打中」 , 以及「被打中後, 播放出死狀後消失」的程式。
判斷蟑螂被打中的程式 • 關於 hitTest 指令 • 撰寫判斷蟑螂被打中與否的程式
關於 hitTest 指令 • 「判斷蟑螂是否被打中」 的程式需要應用到一個重要的指令-hitTest。這個指令在製作 Flash 遊戲時經常使用, 它有兩種寫法, 一種可以判斷兩個實體有沒有重疊;另一種比較精確, 可以判斷一個實體與一個座標點是否有重疊, 而且可選用兩種精確度不同的判定方式。若有重疊就會傳回布林值 true , 若否則傳回 false, 因此許多常見的遊戲如打地鼠、射擊遊戲都可以利用 hitTest。
撰寫判斷蟑螂被打中與否的程式 • 被打中與否的 ActionScript 也要設在舞台中的蟑螂-roach實體上, 這樣每隻複製出來的蟑螂就都能自行判斷自己是不是被打中了。以下就是此階段需要設置的所有程式碼:
撰寫判斷蟑螂被打中與否的程式 • 點選舞台中的roach實體, 然後開啟動作面板。首先要宣告一個變數來記錄 hitTest指令傳回來的布林值, 再用 hitTest指令判斷自己本身是否被滑鼠指標的座標點給按到了:
撰寫判斷蟑螂被打中與否的程式 • 由於蟑螂被打中與否的布林值已經存入 hitRoach變數中, 所以接下來我們只需使用 if判斷式來判斷 hitRoach的值, 然後決定如何動作即可:
蟑螂被打死而消失的程式 • 到此為止, 蟑螂已經能判別自己是否被打中, 而且在打中後能主動播放出死狀了。不過顯示出死狀還不夠, 它得在死後消失掉才行, 因此我們要到被打蟑螂元件中, 加入 ActionScript 來讓蟑螂死後自動消失。以下是此階段所要加入的程式:
蟑螂被打死而消失的程式 • 請進入被打蟑螂元件的編輯狀態中, 我們來加入本階段的 ActionScript:
蟑螂被打死而消失的程式 • 現在遊戲的基本機制都完成了, 你可以回到遊戲場景, 執行『控制/測試場景』命令試試看, 已經可以用拖鞋開始海扁蟑螂, 而蟑螂被打中後也會死掉並消失囉!