Cocos2d / Box2d CCRibbon碰撞检测

时间:2011-06-10 17:58:30

标签: iphone ios cocos2d-iphone box2d

我正在iOS上开发一款带有cocos2d + box2d的游戏作为游戏引擎,并且我正在尝试添加一个CCRibbon(其中的点数填充了触摸),我知道如何以及获得CCRibbon的形状链接到box2d,所以当一个物体与它碰撞时(由于重力),它会反弹,就像它是正常的一样。谁会碰巧知道如何做/给我替代品? 非常感谢, Alexandre Cassagne

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

取每个点并使用点+调整创建一个薄的静态矩形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中用于flash。