2013-10-08 13 views
5

テクスチャアトラスを使用しないと、すべて正常に動作しますが、テクスチャアトラスを使用すると、animateWithTexturesは機能せず、何も表示されません。 は、ここに私のコードこれは私の問題を解決しSpriteKit animateWithTexturesがテクスチャアトラスで動作しない

SKTexture *spaceshipTexture = [SKTexture textureWithImageNamed:@"monkey.png"]; 
SKSpriteNode *spaceship = [SKSpriteNode spriteNodeWithTexture:spaceshipTexture]; 
spaceship.position = CGPointMake(0,0); 
spaceship.anchorPoint = CGPointMake(0,0); 
[self addChild: spaceship]; 

NSMutableArray *images=[NSMutableArray arrayWithCapacity:14]; 
for (int i=1; i<=14; i++) { 
    NSString *fileName=[NSString stringWithFormat:@"%dShuGuangx.png",i]; 
    SKTexture *tempTexture=[SKTexture textureWithImageNamed:fileName]; 
    [images addObject:tempTexture]; 
} 
NSLog(@"count %d",images.count); 
SKAction *walkAnimation = [SKAction animateWithTextures:images timePerFrame:0.1]; 
[spaceship runAction:walkAnimation]; 
+0

あなたはここから見ましたか?http://stackoverflow.com/questions/19159537/ios-spritekit-animation-does-not-appear and here http://www.raywenderlich.com/45152/sprite-kit-tutorial -animations-and-texture-atlases – DogCoffee

+1

@Smickありがとう。そこに答えが見つかりました。 –

答えて

6
[SKTexture preloadTextures:images withCompletionHandler:^(void){ 
     [spaceship runAction:walkAnimation]; 
    }]; 

です。

+0

これも私を助けました。 runAction()は、テクスチャをプリロードする前にアプリケーションをEXE_BAD_ACCESSでクラッシュさせました。ありがとう! – Brainware

+0

クラッシュの原因となった 'repeatActionForever:'に問題があり、これが修正されました。 – Alexander

関連する問題