C++ Cocs2d-X3碰撞

C++ Cocs2d-X3碰撞,c++,cocos2d-x,cocos2d-x-3.0,C++,Cocos2d X,Cocos2d X 3.0,首先,我刚刚开始游戏编程,所以请对我放松。我决定用C++来与COCOS2D-X 3进行合作,这样我就可以用一个代码库来构建多个平台。我已经制作了一个小游戏,其中使用了碰撞,但我认为我做得不对,大多数教程都是针对旧版本的,并且没有向我解释碰撞部分。我有两个问题: 1.)物体撞击矩形,但我需要它们撞击圆形 我尝试过使用cocostudio,但我似乎不太明白如何将矩形变成圆形。我已经能够让动画运行,但当它们发生碰撞时,你可以分辨出它在矩形中,而不是实际的对象 我也尝试过使用physics edito

首先,我刚刚开始游戏编程,所以请对我放松。我决定用C++来与COCOS2D-X 3进行合作,这样我就可以用一个代码库来构建多个平台。我已经制作了一个小游戏,其中使用了碰撞,但我认为我做得不对,大多数教程都是针对旧版本的,并且没有向我解释碰撞部分。我有两个问题:

1.)物体撞击矩形,但我需要它们撞击圆形

  • 我尝试过使用cocostudio,但我似乎不太明白如何将矩形变成圆形。我已经能够让动画运行,但当它们发生碰撞时,你可以分辨出它在矩形中,而不是实际的对象
  • 我也尝试过使用physics editor,但它要求它使用Box2D,这是可以的,但这是我的第二点。同样,使用physics editor,如果不创建单独的资源,我无法运行我想要的动画(我假设是这样)
2.)检测碰撞

  • 我不太清楚如何正确地做到这一点。我已经看到,您可以使用Box2D来实现这一点,但我只是使用下面的代码
  • 现在,从我所读到的内容来看,您可以使用box2d和设置来进行操作,这样它们只会与某些对象发生碰撞,但这让我感到困惑
代码如下:

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

如果有人能帮我,那就太好了。我愿意使用一些工具或教程,这些工具或教程可以解释这一切是如何工作的。我还发现另一件奇怪的事情是,我必须从这里为physics editor引入代码,以便从physics editor导出的plist加载Box2D中的“fixture”。我不知道这是否正确,我本以为Box2D可以自己加载它(我也可能是错的,因为我不知道)。在此问题上的任何帮助都将不胜感激。只要试着正确设置,其他一切都是轻而易举的事。只是似乎不知道如何正确定义碰撞矩形以及检测碰撞的正确方法。

仔细阅读这些,它们可能会有所帮助

  • 它有可下载的cocos2d-x项目文件。版本可能很旧。

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

  • 如果你只需要一个圆,像一个完美的圆?可以使用box2d进行碰撞,并将身体定义为圆形。这将给你一个完美的回电


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

    感谢您的回复,我会将其标记为已回答,因为我自己已经找到答案。