2014-07-13 269 views
0

这听起来像一个非常简单的问题,但我是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); 
     } 
    } 
} 

但唯一的问题是,用它时,它沿着一个单独的文本按钮移动应该保持静止。

我只是不知道如何保持这与我的其他节点移动。

+0

也许你正在寻找一个'SKEmitterNode'。 – duci9y

回答

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]]]]; 
+0

我可能没有正确的说法,我的问题并不是如何移动一个节点,因为它是反复产生大量节点,并将它们移动。 – FireStorm

+0

看到我编辑的答案 –

+0

完美的工作,花了我一段时间,因为我想的是背景是在做什么而不是移动节点的答案,谢谢! – FireStorm