2

2 つの png に基づいて小さなアニメーションを追加しようとしています。2 つの画像で 2 つの SKTexture を作成し、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

あなたのポジショニングの詳細かもしれませんが、それらは正しいですか? 私はあなたのコードを少し変更しました(ビューの中央に配置するために、screenWidthの代わりにself.frame.size.widthと高さについても同じです)、それは私にとってはうまくいきます:

- (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 に答える