前言
这个就作为最后一篇吧,当然,可以扩展的方面还有很多,比如分数的记录,结算界面还有一些小道具等,就不添加了。这只是当作一个简单的入门,而在这个入门中确实学到了不少东西。而那些没添加的东西呢,其实,就没那么重要了。没有太难的知识点。所以,就没必要纠结太长时间了。
正文
碰撞检测:
碰撞检测重新写了一个计时器,这个计时器是每帧调用的,也就是每秒调用60次。但是,没有用updata。
检测碰撞的函数如下:
1 @H_502_32@ 2 @H_502_32@ 3 @H_502_32@ 4 @H_502_32@ 5 @H_502_32@ 6 @H_502_32@ 7 @H_502_32@ 8 @H_502_32@ 9 @H_502_32@ 10 @H_502_32@ 11 @H_502_32@ 12 @H_502_32@ 13 @H_502_32@ 14 @H_502_32@ 15 @H_502_32@ 16 @H_502_32@ 17 @H_502_32@ 18 @H_502_32@ 19 @H_502_32@ 20 @H_502_32@ 21 @H_502_32@ 22 @H_502_32@ 23 @H_502_32@ 24 @H_502_32@ 25 @H_502_32@ 26 @H_502_32@ 27 @H_502_32@ 28 @H_502_32@ 29 @H_502_32@ 30 @H_502_32@ 31 @H_502_32@ 32 @H_502_32@ 33 @H_502_32@ 34 @H_502_32@ 35 @H_502_32@ 36 @H_502_32@ 37 @H_502_32@ 38 @H_502_32@ 39 @H_502_32@ 40 @H_502_32@ 41 @H_502_32@ 42 @H_502_32@ 43 @H_502_32@ | functionGameScene:checkCollision() @H_502_32@ --这个方法处理碰撞检测,子d和敌人的碰撞检测,敌人和player的碰撞检测 @H_502_32@ for k_b,v_binpairs(self.bullets) do @H_502_32@ k_e,v_einpairs(self.enermy) do @H_502_32@ if cc.rectIntersectsRect(v_e:getBoundingBox(),v_b:getBoundingBox())then--检测碰撞 @H_502_32@ localeffectSprite=display.newSprite( "#explosion_01.png" ):addTo(self)--爆炸精灵 @H_502_32@ effectSprite:pos(v_e:getposition()) @H_502_32@ --这里用了笨方法,在播放完动画后,removeSelf,这个Animation是不是不能更Action一起呢?没有在API中找到答案,我会继续的。 @H_502_32@ effectSprite:playAnimationOnce(self:createAnimation( "explosion_0%d.png" ,0.5,3)) @H_502_32@ localsequence=cc.Sequence:create(cc.DelayTime:create(0.6), @H_502_32@ cc.CallFunc:create(function() @H_502_32@ effectSprite:removeSelf() @H_502_32@ end) @H_502_32@ ) @H_502_32@ @H_502_32@ effectSprite:runAction(sequence) @H_502_32@ --子d是一q毙命,偷懒了 @H_502_32@ v_e.isDead= true @H_502_32@ v_b.isDead= true @H_502_32@ end @H_502_32@ end @H_502_32@ end @H_502_32@ @H_502_32@ --清除死亡的子d和敌人 @H_502_32@ do @H_502_32@ v_b.isDead== true then @H_502_32@ self.bullets[v_b]=nil @H_502_32@ v_b:removeSelf() @H_502_32@ end @H_502_32@ end @H_502_32@ do @H_502_32@ v_e.isDead== then @H_502_32@ self.enermy[v_e]=nil @H_502_32@ v_e:removeSelf() @H_502_32@ end @H_502_32@ end @H_502_32@ end @H_502_32@ --帧动画从1开始,返回一个真动画 @H_502_32@ functionGameScene:createAnimation(framename,delayTime,frameNum) @H_502_32@ localframes=display.newFrames(framename,1,frameNum) @H_502_32@ localanimation=display.newAnimation(frames,delayTime/frameNum) @H_502_32@ return animation @H_502_32@ end @H_502_32@ @H_502_32@ |
到这里,我要写的东西就完了,这个程序没有那么精致,但是,其中还是有不少知识点的,相信对于像我一样刚开始接触quick的人来说还是有帮助的,当然,至于程序的细化,实现更复杂的功能,就《微信打飞机来说》,剩下的工作可能就是更改了,应该没多少难点了。
GameScene源码:
由于,自己知识有限,程序可能还有其他问题。如果,有人发现希望指正,大家一起进步吧!!
感谢本文笔者(最后的牛仔)的分享,Cocos引擎中文官网欢迎更多的开发者分享开发经验。来稿请发送至:support@cocos.org。
以上是内存溢出为你收集整理的用Quick-Cocos2d-x 3.3简单开发微信打飞机 -03 添加爆炸动画和子d与敌机的碰撞全部内容,希望文章能够帮你解决用Quick-Cocos2d-x 3.3简单开发微信打飞机 -03 添加爆炸动画和子d与敌机的碰撞所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)