【问题标题】:Cocos2d Physics Node (Debug Drawing) Not Positioned CorrectlyCocos2d 物理节点(调试绘图)未正确定位
【发布时间】:2014-01-25 20:13:32
【问题描述】:

我正在尝试使用 CCPhysicsNode 为游戏制作一个物理世界(物理将用于子弹碰撞检测)。物理实体的调试图偏离了它们实际所在的位置。我相信这可能是由于有一个 CCNode 作为物理世界的父级,并且 CCNode 跟随玩家精灵(游戏世界大于屏幕)。 以下是相关代码:

_controlLayer = [CCNode node];
_controlLayer.position = ccp(0, 0);

_gameLayer = [CCNode node];

[self addChild:_gameLayer];
[self addChild:_controlLayer];

_physicsWorld = [CCPhysicsNode node];
_physicsWorld.debugDraw=YES;
_physicsWorld.collisionDelegate = self;
[_gameLayer addChild:_physicsWorld];

[self setupMap];
[self setUpControls];
[self setupPlayer];

_allZombies = [[NSMutableArray alloc]init];

[_gameLayer runAction:[CCActionFollow actionWithTarget:_player worldBoundary:_map.boundingBox]];

-(void)setupPlayer {
     _player = [CCSprite spriteWithImageNamed:@"Player.png"];
     _player.position = CGPointMake(1024/2+60,768/2+60);
     _player.anchorPoint = ccp(0.5, 0.5);
    _player.physicsBody = [CCPhysicsBody bodyWithRect:_player.boundingBox cornerRadius:0];
    _player.physicsBody.elasticity = 0;
    _player.physicsBody.sensor=YES;
    _player.physicsBody.collisionGroup = @"playerGroup";
    _player.physicsBody.collisionType = @"playerCollision";
    [_player setScale:0.5];

    [_physicsWorld addChild:_player];
}

所以我的问题是,为什么绘制在玩家精灵所在的位置?

【问题讨论】:

    标签: ios objective-c cocos2d-iphone game-physics


    【解决方案1】:

    物理世界不会随着节点自动滚动。如果您通过更改包含“世界对象”的节点的位置来更改绘制对象的位置,那么您将在视觉上从物理世界中的对象位置偏移所有内容。

    有一种滚动世界的方法,就像您有一个相机在世界上平移一样,而物理世界和节点(视觉效果)的相对坐标不受影响。在Sprite Kit programming guide 中有解释,同样的设置也应该适用于 cocos2d。

    【讨论】:

    • 如果物理世界是移动节点的子节点,肯定会随之移动?
    • 不。把物理世界想象成一堆数据。它与物理世界如何在视觉上表示完全没有联系或知识。 cocos2d 中也没有任何东西可以将任何节点位置更改应用回物理世界。至少 cocos2d 3.0 之前的版本是这样的。
    • 等效方法是什么:[node.scene convertPoint:node.position fromNode:node.parent];
    • 这无济于事,因为physicsBodies 不与他们的父母一起移动。这真的很令人沮丧,我不知道如何解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2015-12-05
    相关资源
    最近更新 更多