2

我正在尝试添加一个基于两个 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];

有任何想法吗?提前非常感谢!

4

2 回答 2

1

可能是你的定位细节,你确定它们是正确的吗?我稍微更改了您的代码(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;
}
于 2013-09-20T14:22:30.187 回答
-1

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

非常感谢大家的回答!

于 2013-09-23T07:34:32.370 回答