cocos2d-x如何检测碰撞.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
cocos2d-x如何检测碰撞.doc

cocos2d-x如何检测碰撞 2012-04-17 12:44 佚名 cocos2d-x 我要评论(0) 字号:T | T 我们的英雄现在可以发射子弹了,但仅仅只是装饰而已,如何才能杀掉怪物呢?在这一章,我们将介绍碰撞检测来实现这一效果。 AD: 首先,跟踪怪物和子弹是必需的。 在游戏中,我们为这两种精灵加以不同的tag来区分它们。当tag=1时,表示这是怪物,而tag=2时,则表示这为子弹。由于在CCNode里面有m_nTag这个成员变量,并且有setTag和getTag方法,因此CCSprite就继承了这些方法,我们可以利用之。 在HelloWorldScene.h中,把以下两个成员变量加入到HelloWorld下,这两个成员变量用于缓存现有的怪物和子弹。 1// cpp with cocos2d-x 2protected: 3 cocos2d::CCMutableArray *_targets; 4 cocos2d::CCMutableArray *_projectiles; 1// objc with cocos2d-iphone 2 NSMutableArray *_targets; 3 NSMutableArray *_projectiles; 在cocos2d-x里,CCMutableArray相当于iOS SDK中的NSMutableArray,该数组里的成员可以是NSObject或者他们的子类。但不同的是,你必须告诉它里面要放的是哪种具体的类型。 之后构造函数中初始化这两个变量,在init()中new 它们,并在析构函数中release 它们。 1// cpp with cocos2d-x 2 3// in init() 4// Initialize arrays 5_targets = new CCMutableArray; 6_projectiles = new CCMutableArray; 7 8HelloWorld::~HelloWorld() 9{ 10 if (_targets) 11 { 12 _targets-release(); 13 _targets = NULL; 14 } 15 16 if (_projectiles) 17 { 18 _projectiles-release(); 19 _projectiles = NULL; 20 } 21 22 // cpp dont need to call super dealloc 23 // virtual destructor will do this 24} 25 26HelloWorld::HelloWorld() 27:_targets(NULL) 28,_projectiles(NULL) 29{ 30} 1// objc with cocos2d-iphone 2// in init() 3// Initialize arrays 4_targets = [[NSMutableArray alloc] init]; 5_projectiles = [[NSMutableArray alloc] init]; 6 7- (void) dealloc 8{ 9 [_targets release]; 10 _targets = nil; 11 12 [_projectiles release]; 13 _projectiles = nil; 14 15 // dont forget to call super dealloc 16 [super dealloc]; 17} 现在可以修改addTarget(),把新目标添加到目标数组中,并设置其tag为1。 1// cpp with cocos2d-x 2// Add to targets array 3target-setTag(1); 4_targets-addObject(target); 1// objc with cocos2d-iphone 2// Add to targets array 3target.tag = 1; 4[_targets addObject:target]; 修改ccTouchesEnded(),把新子弹加入到子弹数组中,并设置其tag为2。 1// cpp with cocos2d-x 2// Add to projectiles array 3projectile-setTag(2); 4_projectiles-addObject(projectile); 1// objc with cocos2d-iphone 2// Add to projectiles array 3projectile.tag = 2; 4[_projectil

文档评论(0)

eorihgvj512 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档