【问题标题】:two contact listeners? (iOS, cocos2d, box2d)两个联系听众? (iOS, cocos2d, box2d)
【发布时间】:2013-07-08 07:19:08
【问题描述】:

我正在使用 cocos2d 和 box2d 开发游戏。这个游戏与愤怒的小鸟有一些相似之处(不是很多,但我希望它能帮助我解释我的问题)。我有一些特殊的物体(比如鸟)扔到其他物体(岩石、木头、玻璃等)中。一些特殊的对象具有特殊的属性,当我选择它们时,我需要知道第一次接触发生的时间。比如我选择了炸弹,扔了它,当它接触到其他物体时我必须调用爆炸方法。 我的问题是:我怎么能意识到这一点?我知道在接触监听器中我可以检查每个接触,如果其中一个物体是炸弹 - 然后调用爆炸方法。但我知道这是错误的方式:-) 可能我必须在选择炸弹时添加第二个联系人监听器,并在爆炸后将其删除?可能我必须使用 nsnotification 或类似的东西吗?请帮帮我 谢谢!

【问题讨论】:

  • 使用一个联系人监听器是一个好方法。为什么你认为不是?
  • 感谢您的回答!我是游戏开发的新手,可能是这个原因:-) 我认为如果我检查每一次触摸是否有炸弹(以及其他一些具有特殊属性的对象),cpu 会做很多不必要的工作(每次联系时大约有 5 个额外的检查 if 语句)。
  • 在找到瓶颈之前不要优化。 Box2d 在联系发生时确实做了很多工作来解决联系。所以一些if 的检查永远不会被注意到。

标签: ios xcode cocos2d-iphone box2d


【解决方案1】:

我可以建议下一个解决方案:投掷炸弹后,在每个时间步检查其接触;如果某些接触正在接触,则引爆炸弹。如何查看炸弹的联系人可以看there

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2016-05-02
    相关资源
    最近更新 更多