2015-01-04 2 views
0

Я делаю игру с комплектом спрайтов и объективом c. В настоящее время я пытаюсь сделать фоновый прокрутки бесконечно. Я не могу сделать эту работу. Вот мой код:Неполадка делает фоновый прокрутки бесконечно

метод SKAction

-(void) setUpActions { 
SKAction* move = [SKAction moveByX:-landscape.frame.size.width * 2 y:0 duration:2.0]; 
SKAction* reset = [SKAction moveByX:landscape.frame.size.width * 2 y:0 duration:0.0]; 
SKAction* moveInfinitely = [SKAction sequence:@[move, reset]]; 


//background and log Moving Actions 
moveOver = [SKAction repeatActionForever:moveInfinitely]; 
} 

SKAction вызова метода

-(void) runTheAction { 
[landscape runAction:moveOver]; 
} 

Когда я запускаю приложение ничего не отображается на моем экране.

ответ

0

Создать два справочных спрайтов.

// create 2 background sprites 
    bg1 = [SKSpriteNode spriteNodeWithImageNamed:@"bg1"]; 
    bg1.anchorPoint = CGPointZero; 
    bg1.position = CGPointMake(0, 0); 
    [self addChild:bg1]; 

    bg2 = [SKSpriteNode spriteNodeWithImageNamed:@"bg2"]; 
    bg2.anchorPoint = CGPointZero; 
    bg2.position = CGPointMake(bg1.size.width-1, 0); 
    [self addChild:bg2]; 

Затем в методе обновления:

bg1.position = CGPointMake(bg1.position.x-4, bg1.position.y); 
bg2.position = CGPointMake(bg2.position.x-4, bg2.position.y); 

if (bg1.position.x < -bg1.size.width){ 
    bg1.position = CGPointMake(bg2.position.x + bg2.size.width, bg1.position.y); 
} 

if (bg2.position.x < -bg2.size.width) { 
    bg2.position = CGPointMake(bg1.position.x + bg1.size.width, bg2.position.y); 
} 

Это должно быть довольно просто

+0

Спасибо. Как я могу изменить его, чтобы он мог двигаться влево. Я пытался вместо вычитания при установке позиций для добавления при их настройке. Это не сработало – Wiem