cocos2d-x游戏实例(21)-纵版射击游戏(8)
小滿(bill man)個(gè)人原創(chuàng),歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明地址,小滿(bill man)的專欄地址http://blog.csdn.net/bill_man
上一篇為敵人添加了子彈,本篇為主角添加受傷并添加表示主角血量的ui,首先來(lái)看效果圖:
? ? ? ? ? ? ? ? ? ? ? ? ? ??
首先可以注意到左下角表示出了主角的血量,實(shí)現(xiàn)的代碼如下:
就是為定義三個(gè)基于這張圖片的變量并把它表示在界面上,并用一個(gè)變量存儲(chǔ)主角當(dāng)前的血量playlife,在每次主角受傷的時(shí)候,我做如下的處理:
我們?yōu)橹鹘堑难孔兞繙p1,然后“熄滅”一個(gè)血量ui,之后處理主角的“受傷”動(dòng)作,我們給主角加上CCBlink動(dòng)作,并且用一個(gè)變量isreduce來(lái)記錄當(dāng)前主角的受傷狀態(tài),因?yàn)檫@個(gè)時(shí)候,主角是不應(yīng)該再被檢測(cè)受傷的,會(huì)獲得一段時(shí)間的“無(wú)敵時(shí)間”,然后再動(dòng)作5.0s結(jié)束后,我們?cè)侔?/span>isreduce設(shè)回false。
下面的代碼是檢測(cè)主角和敵人子彈的碰撞
如果isreduce為false,也就是說(shuō)主角不是受傷狀態(tài),就遍歷一遍子彈數(shù)組,檢測(cè)碰撞,用之前的iscollision檢測(cè)碰撞,如果碰撞,則調(diào)用之前的reduceLife函數(shù)并把,子彈設(shè)置為不顯示,以下為iscollision函數(shù)。
然后就是檢測(cè)敵人與主角的碰撞,在敵人的邏輯中實(shí)現(xiàn):
就是如果敵人與主角碰撞,那么敵人死亡,設(shè)置粒子系統(tǒng),并調(diào)用主角reduceLife,然后再2.0s后讓敵人重生。
如有錯(cuò)誤之處,希望大家多多指正
下一篇繼續(xù)縱版射擊游戲?qū)嵗?/p>
總結(jié)
以上是生活随笔為你收集整理的cocos2d-x游戏实例(21)-纵版射击游戏(8)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cocos2d-x游戏实例(20)-纵版
- 下一篇: cocos2d-x游戏实例(22)-纵版