代码之家  ›  专栏  ›  技术社区  ›  noloman amram99

iOS7中的SpriteKit动画WithTextures不工作

  •  2
  • noloman amram99  · 技术社区  · 11 年前

    我试图添加一个基于两个png的小动画,在那里我用两个图像创建了两个SKTextures,并创建了一个SKAction,并用[SKAction repeatActionForever]让它永远运行,但什么都没有发生,什么都没有出现在屏幕上。

    这是我的代码:

    _planePropeller = [SKSpriteNode spriteNodeWithImageNamed:@"PLANE PROPELLER 1.png"];
            _planePropeller.xScale = 0.2;
            _planePropeller.yScale = 0.2;
            _planePropeller.position = CGPointMake(screenWidth/2, _plane.size.height+10);
            SKTexture *propeller1 = [SKTexture textureWithImageNamed:@"PLANE PROPELLER 1.png"];
            SKTexture *propeller2 = [SKTexture textureWithImageNamed:@"PLANE PROPELLER 2.png"];
            SKAction *spin = [SKAction animateWithTextures:@[propeller1, propeller2] timePerFrame:0.1];
            SKAction *spinForever = [SKAction repeatActionForever:spin];
            [_planePropeller runAction:spinForever];
            [self addChild:_planePropeller];
    

    有什么想法吗?提前非常感谢!

    2 回复  |  直到 11 年前
        1
  •  1
  •   AndyOS    11 年前

    可能是你的定位细节,你确定它们是正确的吗?我稍微更改了您的代码(self.frame.size.width而不是screenWidth,高度也一样,将其放置在视图的中心),它对我很有效:

    - (SKNode *)propellorNode
    {
    SKNode *planePropeller = [SKSpriteNode spriteNodeWithImageNamed:@"image1.png"];
    planePropeller.xScale = 0.2;
    planePropeller.yScale = 0.2;
    planePropeller.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2);
    SKTexture *propeller1 = [SKTexture textureWithImageNamed:@"image1.png"];
    SKTexture *propeller2 = [SKTexture textureWithImageNamed:@"image2.png"];
    SKAction *spin = [SKAction animateWithTextures:@[propeller1, propeller2]    timePerFrame:0.1];
    SKAction *spinForever = [SKAction repeatActionForever:spin];
    [planePropeller runAction:spinForever];
    return planePropeller;
    }
    
        2
  •  -1
  •   noloman amram99    11 年前

    所以我的问题实际上是我自己的无知,因为我第一次添加 SKNodes ,最后一个,当应该添加背景时,第一个,所以它可以在背景上:)

    非常感谢大家的回答!