大家好,我正在做一个游戏,敌人不应该穿过游戏中的墙壁和物品,例如,如果有墙,敌人的角色不应该通过它。但是,我无法让物理学完全正确地工作。如果它试图遇到像墙一样的另一个精灵,我希望敌人停下来。
谢谢你们。
- (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];
}
答案 0 :(得分:0)
你需要敌人节点也有物理身体:
_Enemy.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:_Enemy.size];
要防止节点受到重力的影响,您可以设置
_Enemy.physicsBody.affectedByGravity = NO;
或者,在initWithSize方法中,
self.physicsWorld.gravity = CGVectorMake(0, 0);