【发布时间】:2013-07-08 07:19:08
【问题描述】:
我正在使用 cocos2d 和 box2d 开发游戏。这个游戏与愤怒的小鸟有一些相似之处(不是很多,但我希望它能帮助我解释我的问题)。我有一些特殊的物体(比如鸟)扔到其他物体(岩石、木头、玻璃等)中。一些特殊的对象具有特殊的属性,当我选择它们时,我需要知道第一次接触发生的时间。比如我选择了炸弹,扔了它,当它接触到其他物体时我必须调用爆炸方法。 我的问题是:我怎么能意识到这一点?我知道在接触监听器中我可以检查每个接触,如果其中一个物体是炸弹 - 然后调用爆炸方法。但我知道这是错误的方式:-) 可能我必须在选择炸弹时添加第二个联系人监听器,并在爆炸后将其删除?可能我必须使用 nsnotification 或类似的东西吗?请帮帮我 谢谢!
【问题讨论】:
-
使用一个联系人监听器是一个好方法。为什么你认为不是?
-
感谢您的回答!我是游戏开发的新手,可能是这个原因:-) 我认为如果我检查每一次触摸是否有炸弹(以及其他一些具有特殊属性的对象),cpu 会做很多不必要的工作(每次联系时大约有 5 个额外的检查 if 语句)。
-
在找到瓶颈之前不要优化。 Box2d 在联系发生时确实做了很多工作来解决联系。所以一些
if的检查永远不会被注意到。
标签: ios xcode cocos2d-iphone box2d