Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cocos2d-x游戏实例(17)-纵版射击游戏(4)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

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

继续上一篇的纵版射击游戏,本篇讲解加入子弹,效果如下


子弹是射击游戏中很重要的一部分,我们需要创建子弹,控制子弹并监控子弹的不同状态,而且子弹不是一个单独的实体,我们把子弹放入一个数组中方便管理,我们新建一个CCArray*bullets;来管理数组。首先初始化数组,记住,在初始化后要retain


当然首先要创建GameBullet,它继承于GameSprite,首先来看GameBullet的类的定义:


和之前的GamePlayerGameEnemy定义没有什么不同,和GameEnemy一样,也需要在tick里写自己逻辑,逻辑很简单就是移动:


后面就需要实现发子弹的逻辑,最近玩了一个GalaxyLaser的纵版射击游戏,我就使用里面的发子弹逻辑,就是当你控制主角时,也就是说你的手指在主角的矩形范围内时,主角就会隔一段时间发出子弹,实现这个我们需要修改以下两个函数:

virtualvoidccTouchesBegan(CCSet*pTouches,CCEvent*pEvent);

virtualvoidccTouchesEnded(CCSet*pTouches,85); font-family:'microsoft yahei'; font-size:15px; line-height:35px"> 首先看ccTouchesBegan的修改:


和之前不同的是,我们使用schdule挂上resettouch,每1s调用一次resettouchresettouch就是生成子弹的函数:


就是遍历子弹数组,如果设置为不显示的子弹,我们就可以使用,getIsVisible获得子弹是否被显示(我们会把出屏幕的和,碰上敌人的子弹变成不显示),这样我们就生成了新的子弹,下面来看ccTouchesEnded:


清掉参数的同时,对resettouchunschedule处理

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

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

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。