我正在使用 cocos2d+box2d 作为游戏引擎在 iOS 上开发一款游戏,我正在尝试添加一个 CCRibbon(其中的点会被触摸填充),我知道如何添加并获得该 CCRibbon 的形状连接到 box2d,所以当一个物体与它碰撞时(由于重力),它会弹开,就好像它是正常的东西一样。有人会碰巧知道怎么做/给我替代方案吗? 非常感谢, 亚历山大·卡萨涅
最佳答案
获取每个点并使用这些点+调整使其成为一个形状来创建一个薄的静态矩形 box2d 多边形。
for (int i = 0; i < ccribbon.points.length - 1; i++)
{
int j = i;
j++;
int width = 2;
Array ar = [];
ar[0] = new b2Vec2(ccribbon.points[i].x, ccribbon.points[i].y);
ar[1] = new b2Vec2(ccribbon.points[i].x + width, ccribbon.points[i].y + width);
ar[2] = new b2Vec2(ccribbon.points[j].x, ccribbon.points[j].y);
ar[3] = new b2Vec2(ccribbon.points[j].x + width, ccribbon.points[j].y + width);
//create new static object
b2Polygon b2p = new b2Polygon();
b2p.setAsArray(ar);
//do rest to add it to world etc.
}
当然不要完全复制我记得的代码,我也确定它是 C# 和 Actionscript 3 的组合。它是一种不太伪的代码,有很多你需要填充的空白in. 为什么会有评论 :P.
这基本上就是我会怎么做。不过,我的经验仅限于 box2d for flash。
关于iphone - Cocos2d/Box2d CCRibbon 碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6310300/