gpt4 book ai didi

c++ - Cocos2d-x 3 碰撞

转载 作者:行者123 更新时间:2023-11-28 06:49:10 26 4
gpt4 key购买 nike

首先,我才刚刚开始游戏编程,所以请放轻松。我决定使用 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为了让 Box2D 中的“固定装置”从物理编辑器导出的 plist 中加载。我不知道这是否正确我会认为 Box2D 可以自己加载它(我在这里也可能是错的,因为我只是不知道)。非常感谢对此事的任何帮助。只是尝试正确设置此设置,其他一切都变得轻而易举。只是似乎无法弄清楚如何正确定义碰撞矩形和检测碰撞的正确方法。

最佳答案

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

  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。但他讨论了有助于创建更精确的碰撞参数的顶点辅助工具。

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

如果你只需要一个圆,比如完美的圆?你可以使用 box2d 进行碰撞并将你的 body 定义为 b2Circle。这将为您提供完美的回调。

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

关于c++ - Cocos2d-x 3 碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24338705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com