憤怒的小鳥判斷場景中道具被小鳥擊中後的改變以及小鳥碰撞玩物體後的受傷狀態以及使用靜態方法對聲音的新增
首先要了解當小鳥與非小鳥發生碰撞時是因為力的存在,所以當小鳥碰撞到非小鳥物體時兩者都會產生相應的速度,所以便可通過相對速度來檢測其碰撞後的狀態。
一:
因此,我們可以定義兩個速度,一個為最小速度minSpeed,另一個為最大速度maxSpeed,我們可讓當最小速度minSpeed<豬被小鳥碰撞的速度<最大速度maxSpeed,小豬此時的狀態為受傷。當豬被小鳥碰撞的速度>最大速度maxSpeed,此時豬直接死亡。
二:程式碼如下
1.定義兩個速度
2.使用碰撞檢測,來完成對此時速度的判斷
3.Dead方法的實現
Dead方法中的Score方法為當小豬被小鳥碰撞後死亡時會有分數呈現
其中的boom,為當小豬死亡後呈現的動畫由圖片構成
程式碼:
因為分數要在豬的上方呈現,所以要將豬當前的位置加上適當的y值讓分數呈現在豬的上方,不過在實現小先定義。
二:小鳥受傷狀態的實現以及非小鳥的受傷狀態實現
可以看見的發射黑色小鳥後小豬的狀態以及發生了改變,這個操作我們可以通過SpriteRenderer元件來完成。
1.小豬受傷後的狀態改變
hurt為受傷後的圖片
在Awake()中呼叫
在private void OnCollisionEnter2D(Collision2D collision)碰撞檢測中實現,當此時的速度小於maxSpeed大於minSpeed時為受傷狀態,當速度大於maxSpeed小豬直接死亡,並生成boom動畫。
2.場景中木塊,玻璃等物品的受傷狀態改變
場景木塊等物體也會被小鳥碰撞後,也會有受傷狀態,其原理於小豬碰撞原理相類似,所以我們可以將小豬上的指令碼(pig)賦予場景中其他物體,即可完成其效果。但我們要區分這兩個物體(小豬和木頭等物體),所以我們要定義一個bool型別來區分是否為ispig。
通過此方法來完成對小鳥碰撞其他物體後的其他物體的受傷狀態改變。
三.小鳥受傷狀態的實現
與定義小豬受傷的方法相似
也是通過SpriteRenderer元件來實現,在Awake()中獲取
在bird類中定義Hurt()
然後在pig中通過將小鳥賦予Player的標籤來實現小鳥受傷,來呼叫bird類中的Hurt()方法。
四.運用靜態方法來完成對聲音的呼叫。
首先定義三個AudioClip型別,分別為小豬受傷時的音訊,一個小豬死亡時的音訊和小鳥發生碰撞時的音訊。
定義此靜態方法
然後在通過AudioPlay()方法來呼叫
相關文章
- “過氣網紅”憤怒的小鳥
- 憤怒的小鳥太空版下載遊戲遊戲
- Rovio怎樣讓“憤怒的小鳥”重新起飛?
- 多年之後,《憤怒的小鳥》也活成了自己曾討厭的樣子
- P2831 [NOIP2016 提高組] 憤怒的小鳥
- 《憤怒的小鳥2》大電影:Rovio給自己的“毒奶”
- 《憤怒的小鳥》成功了,《陰陽師》們能複製嗎?
- 《憤怒的小鳥》是如何從萬人追捧到無人問津的?
- 把憤怒小鳥做成三消的MYBO新作《花兒愛消除》曝光
- 「Macos最新」憤怒的小鳥重製版Angry Birds Reloaded for Mac 中文版Mac
- 從萬人追捧到被人遺忘,《憤怒的小鳥》經歷了什麼?
- 《我的世界》、《憤怒的小鳥》紛紛入局,AR 手遊迎來大爆發
- 玩家——受傷後的保護狀態
- 昔日王者的強強聯手還是抱團取暖?世嘉為何要買下《憤怒的小鳥》
- “憤怒的小鳥”飛不動了? Rovio上線《小鎮謀殺案:三消》開拓消除細分領域
- Q1收入近5億元,4年過去了,Rovio還在靠《憤怒的小鳥2》活著
- 解決方法|小鳥雲伺服器建站無法訪問的小技巧伺服器
- 16 ##### 適合靜態方法的場景:方法中不使用物件的值,則直接使用靜態方法物件
- 一個小技巧助您減少if語句的狀態判斷
- 小鳥雲的雲伺服器適合什麼樣的使用者?伺服器
- JAVA專案:Java實現飛揚的小鳥(Flappy Bird)JavaAPP
- 後期靜態繫結在PHP中的使用PHP
- Linux菜鳥到老鳥的那些建議Linux
- 小鳥雲伺服器 新增香港高防雲伺服器,抵禦DDoS攻擊伺服器
- 寫一個菜鳥裹裹小程式吧
- 鳥哥私房菜-基礎篇小筆記筆記
- 小鳥雲伺服器什麼配置好?伺服器
- Java類、物件以及(靜態)方法的探討Java物件
- javascript中的this使用場景以及箭頭函式中的thisJavaScript函式
- [Swift]SpriteKit實現類似畫素鳥的小遊戲 - Crashy PlaneSwift遊戲
- P1941 NOIP2014 提高組 飛揚的小鳥 題解
- 小鳥雲安全組在哪裡?怎麼設定?
- 小鳥雲資料盤如何進行掛載?
- 執行緒的6種狀態以及轉變執行緒
- javascript中對變數型別的判斷方法JavaScript變數型別
- 靜態方法和例項方法的區別以及如何恰當使用
- Linux“菜鳥”到“菜鳥的一些建議Linux
- 淺談前端的狀態管理,以及anguar的狀態管理庫前端