iOS Sprite Kit- SKSpriteNode似乎没有物理主体参与模拟

时间:2014-02-23 19:29:00

标签: ios sprite-kit

我正在使用Sprite Kit开发iOS游戏。

我最近在我的场景中添加了一个SKSpriteNode,并没有为它创建一个物理体。然而,当我构建并运行时,当玩家的角色(确实有一个物理体)进入SKSpriteNode时,它会旋转并移开,就像它有一个物理体 - 但我没有为SKSpriteNode创建一个。

即使我输入

sprite.physicsBody = nil;

它仍然表现得像是模拟的一部分。

我想知道在制作SKSpriteNode时是否自动创建了一个物理主体,但是我查看了文档并在Google上搜索了它,并且无法找到任何暗示的情况。

非常感谢任何帮助或建议。

这是我用来创建精灵的代码(不应受模拟影响的代码)

-(void)addSprite
{
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"image"];
sprite.position = CGPointMake(40, 30);
sprite.zPosition = 30;
sprite.name = @"spriteName";

[self addChild:sprite];
 }

在项目的另一部分我有

[self addSprite];

调用方法。

1 个答案:

答案 0 :(得分:2)

是的,每个SKSpriteNode都带有一个物理体。最好改变物理体的属性,而不是完全摆脱它。如果您希望您的精灵在屏幕上而不与任何其他精灵节点交互,请执行以下操作:

sprite.physicsBody.dynamic = NO;
sprite.physicsBody.collisionBitMask = 0x0;
sprite.physicsBody.contactTestBitMask = 0x0;