禁用spritenode的更改

时间:2014-05-02 21:31:24

标签: ios objective-c sprite-kit

我创建了一个游戏,我在底部创建SKSpriteNode。因为我想让一个高于草的实际底部原因作为背景。问题是在我创建了物理体后,我的移动SKSpriteNode与底部接触。我创建的底部SpriteNode将会移动。

如何使底部精灵节点具有作为底边的功能,而不是完全移动。我的意思是它无法改变立场。

我的代码:

SKSpriteNode *bottom = [SKSpriteNode spriteNodeWithColor:[SKColor clearColor] size:CGSizeMake(self.frame.size.width*2, 98)];
    bottom.physicsBody.dynamic = NO;
bottom.position = CGPointMake(0, 0);
[self addChild:bottom];

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

1 个答案:

答案 0 :(得分:0)

您必须将物理主体的dynamic属性设置为NO。在实际创建物理实体之前,您正在执行此操作。这就是为什么它没有任何影响。将您的代码更改为:

SKSpriteNode *bottom = [SKSpriteNode spriteNodeWithColor:[SKColor clearColor]
                                                    size:CGSizeMake(self.frame.size.width*2, 98)];

bottom.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:bottom.size];  
bottom.physicsBody.dynamic = NO;
bottom.position = CGPointMake(0, 0);

[self addChild:bottom];

它应该有用。