Cocos2d-x 3碰撞

时间:2014-06-21 05:49:17

标签: c++ cocos2d-x cocos2d-x-3.0

首先我开始玩游戏编程,所以请放轻松。我决定使用c ++来使用cocos2d-x 3,这样我就可以用一个代码库为多个平台构建它。我已经构建了一个关于碰撞工作的小游戏,但我认为我做得不对,而且大多数教程都是针对旧版本的,并没有完全解释碰撞部分对我的理解。我有两个问题:

1。)物体在一个矩形中击中,但我需要它们打成一个圆圈。

  • 我尝试过使用cocostudio,但我似乎无法弄清楚如何让矩形成为一个圆圈。我已经能够让动画运行但是当它们发生碰撞时你会发现它在矩形而不是实际物体中。
  • 我也尝试过使用物理编辑器但是它要求它使用Box2D,这是好的,但这是我的第二点。使用物理编辑器,我无法创建我想要的动画,而无需创建单独的资源(我假设这样)。

2.)检测碰撞。

  • 我不太确定如何正确地做到这一点。我已经看到你可以使用Box2D,但我只是使用类似下面的代码
  • 现在从我读过的内容你可以用box2d和设置来做到这一点,它们只与某些对象发生碰撞,但这一切都让我感到困惑。

以下是代码:

CCRect ballRect = ball->getBoundingBox();
CCRect enemyRect = enemy->getBoundingBox();
if(ballRect.intersectsRect(enemyRect)){
  //collision
}

如果有人能帮助我,那会很棒。我会接受一些可以使用的工具或教程,我可以跟随它来解释这一切是如何工作的。另外我发现的另一件奇怪的事情就是我必须从这里https://github.com/CodeAndWeb/PhysicsEditor-Cocos2d-x-Box2d提取物理编辑器的代码才能获得" fixtures"在Box2D中从物理编辑器导出的plist加载。我不知道这是不对的我会认为Box2D本身可以加载它(我可能也错了,因为我不知道)。任何有关此事的帮助都非常感谢。只是试图正确设置这个设置,其他一切都是轻而易举的。似乎无法弄清楚如何正确定义碰撞矩形以及检测碰撞的正确方法。

1 个答案:

答案 0 :(得分:1)

尽管如此,他们可能会有所帮助。

  1. 它有可下载的cocos2d-x项目文件。版本可能很旧。 http://www.gmtdev.com/blog/2011/08/19/how-to-use-box2d-for-just-collision-detection-with-cocos2d-x/10

  2. 这是cocos2d,它是obj-c。但他讨论了顶点辅助工具,它有助于创建更精确的碰撞参数。

  3. http://www.raywenderlich.com/606/box2d-tutorial-for-ios-how-to-use-box2d-for-just-collision-detection-with-cocos2d-iphone

    如果你只需要一个圆圈,就像一个完美的圆圈?你可以使用box2d进行碰撞,并将你的身体定义为b2Circle。哪个会给你完美的回调。

    您可以查看每个cocos2d-x下载附带的test-cpp项目,以获取最新语法和基本教程。他们也测试了box2d。