cocos2d-x游戏实例(16)-纵版射击游戏(3)

cocos2d-x游戏实例(16)-纵版射击游戏(3),第1张

概述小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 上一篇搭建了纵版射击游戏游戏对象的简单结构,即所有游戏的对象(子d,敌人,主角)继承于同一个类,本篇将会进一步完善这个游戏,加入主角移动时的残象和敌人的碰撞; 1.主角移动的残象 在我们移动主角的时候,加入一个“影子”的效果,可以感觉主角在“快速

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man

@R_301_6976@搭建了纵版射击游戏游戏对象的简单结构,即所有游戏的对象(子d,敌人,主角)继承于同一个类,本篇将会进一步完善这个游戏,加入主角移动时的残象和敌人的碰撞;

1.主角移动的残象

在我们移动主角的时候,加入一个“影子”的效果,可以感觉主角在“快速”地移动,效果如下:


方法很简单,就是在我们创建CCSprite的时候,我们再创建一个CCMotionStreak,并在我们每次移动CCSprite时,同时移动CCMotionStreak,这样就可以留下残象的效果。

首先看创建时:


第一个参数为残象保留的时间,第二个参数为残象的片段数,第三个参数是图片的路径,第四第五个参数是残象的宽高,最后一个参数是残象的颜色,由于我们主角是红色,我们也把它设为红色。

然后再来看设置位置:


设置位置很简单,就是setPostion就可以了;

2.加入敌人并检测碰撞

效果图如下:


首先加入敌人的方式很简单,和加入主角一样,只是我们要给敌人加一个移动,就是在tick里控制敌人每帧的移动,然后在我们的主场景里调用这个tick就可以了。然后碰撞检测也在这里主场景的update里进行。

首先来看检测碰撞的函数collision:


这个碰撞检测很简单,就是检测敌人和主角的碰撞,也就是敌人本身和主角的sprite的碰撞,首先检测两个矩形中心的距离是否小于各自宽高一半的和,那么两个矩形就重合了,我们需要校正位置,把两个矩形校正为不碰撞即可。矩形的重合示意如下:


如果两个矩形重合,那么他们中心的横坐标差一定小于各自宽一半的和,纵坐标的差小于高一半的和,这也就是if(abs(ownp.x-otherp.x)<=ownsize.wIDth/2+othersize.wIDth/2&&abs(ownp.y-otherp.y)<=ownsize.height/2+othersize.height/2)的意思

如有错误之处,希望大家多多指正

下一篇继续纵版射击游戏实例

总结

以上是内存溢出为你收集整理的cocos2d-x游戏实例(16)-纵版射击游戏(3)全部内容,希望文章能够帮你解决cocos2d-x游戏实例(16)-纵版射击游戏(3)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1064607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存