XCODE / SK SpriteKit /如何让我的精灵移动

时间:2014-05-20 23:32:36

标签: ios css xcode

我迫切需要你的帮助。所以我是SpriteKit for XCODE的新手,我只是习惯了这些机制。我目前有一个背景图像和一个位于中心的精灵。

问题

精灵在屏幕上水平移动,这就是我想要的。然而,精灵移出屏幕,我想要的是精灵和背景之间的连续运动。例如,下面视频链接中的这个游戏显示了我想要的那种关系。 https://www.youtube.com/watch?v=9RYgMqkRgoE

       SKSpriteNode *mega =[ SKSpriteNode spriteNodeWithImageNamed:@"Mega.png"];
        mega.position = CGPointMake (self. frame.size.width/2, self.frame.size.height/2);
        mega.size = CGSizeMake(30,30);
        mega.zPosition = 3;

        mega.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:mega.frame.size];

        mega.physicsBody.usesPreciseCollisionDetection = YES;
        mega.physicsBody.mass = 0.2;
        mega.physicsBody.affectedByGravity = NO;
        mega.physicsBody.dynamic = NO;

    SKAction *moveNodeUp = [SKAction moveByX:500 y:0.0 duration:10];
    [mega runAction: moveNodeUp];



    [self addChild:mega];

            SKAction *repeater = [SKAction repeatActionForever:moveNodeUp];

    [mega runAction:repeater];

    SKSpriteNode *bg = [SKSpriteNode spriteNodeWithImageNamed:@"bg.png"];
    bg.position = CGPointMake(160, 284);
    bg.size = CGSizeMake(self.frame.size.width, self.frame.size.height);

    SKAction *moveNodeForward = [SKAction moveByX:500 y:0.0 duration:10];
    bg runAction: moveNodeForward];



    [self addChild:bg];

1 个答案:

答案 0 :(得分:1)

移动背景,而不是精灵。

如果仔细观察该视频,您会注意到角色永远不会离屏幕中心太远。背景的运动(以及角色上的动画)产生了一种运动的幻觉。

如果删除这些行:

SKAction *moveNodeUp = [SKAction moveByX:500 y:0.0 duration:10];
[mega runAction: moveNodeUp];

移动背景时,播放器似乎会向左移动。

如果您想制作类似于视频中的游戏,我建议您查看this one等问题