Sprite Kit碰撞检测和物理

时间:2014-03-23 07:22:55

标签: collision-detection sprite-kit skphysicsbody

大家好,我正在做一个游戏,敌人不应该穿过游戏中的墙壁和物品,例如,如果有墙,敌人的角色不应该通过它。但是,我无法让物理学完全正确地工作。如果它试图遇到像墙一样的另一个精灵,我希望敌人停下来。

谢谢你们。

- (void) Enemy {
_Enemy = [SKSpriteNode spriteNodeWithImageNamed:@"enemy"];
_Enemy.position = CGPointMake(520, _Enemy.size.height/1.50);
[self addChild:_Enemy];

}

- (void) EnemyHomeWalls {
Wall = [SKSpriteNode spriteNodeWithImageNamed:@"Thewall@2x"];
wall.name = @"Thewall";
wall.position = CGPointMake(500, 150);
Wall.xScale = 0.12;
Wall.yScale = 0.12;
Wall.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
[self addChild:Wall];

}

1 个答案:

答案 0 :(得分:0)

你需要敌人节点也有物理身体:

_Enemy.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:_Enemy.size];

要防止节点受到重力的影响,您可以设置

_Enemy.physicsBody.affectedByGravity = NO;

或者,在initWithSize方法中,

self.physicsWorld.gravity = CGVectorMake(0, 0);

您需要学习SKPhysicsBody class reference

相关问题