首先我开始玩游戏编程,所以请放轻松。我决定使用c ++来使用cocos2d-x 3,这样我就可以用一个代码库为多个平台构建它。我已经构建了一个关于碰撞工作的小游戏,但我认为我做得不对,而且大多数教程都是针对旧版本的,并没有完全解释碰撞部分对我的理解。我有两个问题:
1。)物体在一个矩形中击中,但我需要它们打成一个圆圈。
2.)检测碰撞。
以下是代码:
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本身可以加载它(我可能也错了,因为我不知道)。任何有关此事的帮助都非常感谢。只是试图正确设置这个设置,其他一切都是轻而易举的。似乎无法弄清楚如何正确定义碰撞矩形以及检测碰撞的正确方法。
答案 0 :(得分:1)
尽管如此,他们可能会有所帮助。
它有可下载的cocos2d-x项目文件。版本可能很旧。 http://www.gmtdev.com/blog/2011/08/19/how-to-use-box2d-for-just-collision-detection-with-cocos2d-x/10
这是cocos2d,它是obj-c。但他讨论了顶点辅助工具,它有助于创建更精确的碰撞参数。
如果你只需要一个圆圈,就像一个完美的圆圈?你可以使用box2d进行碰撞,并将你的身体定义为b2Circle。哪个会给你完美的回调。
您可以查看每个cocos2d-x下载附带的test-cpp项目,以获取最新语法和基本教程。他们也测试了box2d。