2015-10-26 36 views
3

我无法弄清楚如何阻止节点旋转。 为什么allowRotation不禁用它?
这里是我如何形容我的节点:停止Sprite套件中的节点旋转

SKSpriteNode *badguy = [SKSpriteNode spriteNodeWithTexture:[self.spriteAtlas textureNamed:@"test"]]; 
badguy.texture.filteringMode = SKTextureFilteringNearest; 
badguy.physicsBody.angularVelocity = 0; 
badguy.physicsBody.allowsRotation = NO; 
badguy.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(32, 32)];  
badguy.physicsBody.velocity = CGVectorMake(0, 0); 
badguy.physicsBody.categoryBitMask = CollisionTypeEnemy; 
badguy.physicsBody.contactTestBitMask = CollisionTypePlayer | CollisionTypeWall | CollisionTypeEnemy; 
badguy.physicsBody.collisionBitMask = CollisionTypeWall | CollisionTypePlayer | CollisionTypeEnemy; 
badguy.physicsBody.mass = 10000; 
badguy.physicsBody.restitution = 0; 
badguy.physicsBody.dynamic = YES; 
badguy.zPosition = 10; 

在更新我调用这个方法:

-(void)enemiesFollow 
{ 

    [self.world enumerateChildNodesWithName:@"badGuy" usingBlock:^(SKNode * _Nonnull badGuyNode, BOOL * _Nonnull stop) { 
     if((SDistanceBetweenPoints(self.player.position, badGuyNode.position) < 100)&& 
      (SDistanceBetweenPoints(self.player.position, badGuyNode.position) > 32)) 
     { 
      SKAction * actionMove = [SKAction moveTo:self.player.position duration:2.0]; 
      [badGuyNode runAction:actionMove]; 
     }else{ 
      [badGuyNode removeAllActions]; 
     } 

    }]; 

} 
+1

请用你如何移动那个(旋转)节点的例子来更新你的代码。 – Whirlwind

回答

5

感谢Skyler Lauren's建议,我非常肯定,问题是这些行:

SKSpriteNode *badguy = [SKSpriteNode spriteNodeWithTexture:[self.spriteAtlas textureNamed:@"test"]]; 
badguy.texture.filteringMode = SKTextureFilteringNearest; 
badguy.physicsBody.angularVelocity = 0; 
badguy.physicsBody.allowsRotation = NO; 
badguy.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(32, 32)]; 

问题是,在创建实体之前,您不能设置物理体的属性。所以,创建一个物理体后,只需移动这些线,你就会很好,像这样:

SKSpriteNode *badguy = [SKSpriteNode spriteNodeWithColor:[SKColor greenColor] size:CGSizeMake(32,32)]; 
badguy.texture.filteringMode = SKTextureFilteringNearest; 
badguy.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(32, 32)]; 
badguy.physicsBody.angularVelocity = 0; 
badguy.physicsBody.allowsRotation = YES; 
+0

嗯,你是对的。有用!谢谢。 – HelloimDarius