如何在屏幕上滚动节点

时间:2014-07-13 03:48:40

标签: ios sprite-kit nodes game-physics

这听起来像一个非常简单的问题,但我是Xcode的新手,并且在我的生活中无法正确地做到这一点,我想知道什么是重复产生节点的好方法屏幕左侧将其滚动到屏幕右侧。它只是用于装饰,所以他们不需要做任何其他事情。问题是,当我试图在屏幕上滚动节点时,我的背景就是它。后台插入以下代码 -

-(id)initWithSize:(CGSize)size {

    if (self = [super initWithSize:size]) {
        self.backgroundColor = [SKColor whiteColor];

        SKSpriteNode *bgImage = [SKSpriteNode spriteNodeWithImageNamed:@"start"];
        [bgImage setScale: .52];
        bgImage.position = CGPointMake(self.size.width/2, self.size.height/2);
        [self addChild:bgImage];

编辑:这是我移动节点的方式 -

- (void)moveObstacle
{
    NSArray *nodes = self.children;

    for(SKNode * node in nodes){
        if (![node.name  isEqual: @"start"] && ![node.name  isEqual: @"start"]) {
            SKSpriteNode *ob = (SKSpriteNode *) node;
            CGPoint obVelocity = CGPointMake(-OBJECT_VELOCITY, 0);
            CGPoint amtToMove = CGPointMultiplyScalar(obVelocity,_dt);

            ob.position = CGPointAdd(ob.position, amtToMove);
         }
    }
}

但唯一的问题是,当它应该保持静止时,单独的文本按钮会随之移动。

我只是不知道如何防止它与我的其他节点一起移动。

1 个答案:

答案 0 :(得分:0)

在其上运行适当的SKAction

SKAction *move1 = [SKAction moveByX:bgImage.size.width y:0 duration:5.0];
SKAction *move2 = [SKAction moveToX:-bgImage.size.width y:0 duration:0.0];
[bgImage runAction:[SKAction repeatActionForever:[SKAction sequence:@[move1,move2]]]];