【问题标题】:cpShapes not colliding?cpShapes 没有碰撞?
【发布时间】:2013-02-28 16:39:46
【问题描述】:

我这几天一直在尝试解决这个问题,但我无法弄清楚我的问题是什么。

所以我使用 cocos2d 和 chipmunk-spaceManager 来创建我的游戏。所以我正在做的是创建 4 个 cpShapes 附加到一个 cpBody 并将它们附加到一个 CCSprite。这是我的代码。

- (id) helmetInit:(Game*)game {

    cpShape *helmet_1;
    cpShape *helmet_2;
    cpShape *helmet_3;

    cpShape *reference = [game.spaceManager addCircleAt:cpvzero mass:STATIC_MASS radius:2];

    helmet_1 = [game.spaceManager addCircleToBody:reference->body radius:20 offset:cpv(-5, 2)];

    helmet_2 = [game.spaceManager addCircleToBody:reference->body radius:8 offset:cpv(16, -14)];

    helmet_3 = [game.spaceManager addCircleToBody:reference->body radius:8 offset:cpv(8, -14)];

    reference->group    = 1;
//    helmet_1->group     = 1;
//    helmet_2->group     = 1;
//    helmet_3->group     = 1;


    [self initWithFile:@"Helmet.png"];
    [self setShape:reference];
    //[self setBody:reference->body];

    self.spaceManager = game.spaceManager;
    self.autoFreeShapeAndBody = YES;

    gameScreenSize = game.contentSize;

    return self;
}

所以我的问题是我遇到任何碰撞的唯一时间是我的游戏中的其他形状之一是否与(参考形状)发生碰撞,该形状是与所有形状共享的身体创建的形状。如果我了解花栗鼠的工作方式,不是每个形状都有碰撞,因为其他形状就像那里一样,甚至不在那里。其他形状直接穿过它们,直到它们与参考形状发生碰撞,这是目前唯一有任何碰撞的形状。是我做错了什么还是我不明白花栗鼠的工作方式?

这是我创建的 4 个形状的屏幕截图。

【问题讨论】:

  • 我们可以看看你在哪里设置了碰撞吗?
  • 我真的可以在这方面使用一些帮助。我不知道出了什么问题?

标签: cocos2d-iphone game-physics chipmunk


【解决方案1】:

好的,带着很多挫败感,我终于找到了我的问题。在花栗鼠空间开始模拟后,我正在移动一个静态形状。所以我通过设置smgr.rehashStaticEveryStep = YES; 来修复它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    相关资源
    最近更新 更多