2011-11-20 177 views
0

我在我的init()方法創建這樣一個精靈(mySprite上在.H聲明):動畫CCSprite不起作用?

mySprite = [CCSprite spriteWithFile:@"Image1.png"]; 
     [mySprite setPosition:ccp(100, 300)]; 
     [self addChild:mySprite z:1 tag:1]; 

然後在我的另一種方法,我嘗試動畫像這樣,但它似乎沒有不動畫所有,我也知道這是在調用方法,因爲我NSLogged它。無論如何,這裏是我如何嘗試動畫mySprite:

CCSequence *moveSequence = [CCSequence actions:[CCMoveTo actionWithDuration:5 position:ccp(120, 400)],[CCMoveTo actionWithDuration:4 position:ccp(100, 300)], nil]; 
    [mySprite runAction:[CCRepeatForever actionWithAction:moveSequence]]; 

任何想法,爲什麼會發生這種情況?

謝謝!

+0

他們questionmismabout '爲什麼該方法不叫'?因爲代碼看起來很不錯 –

+0

那麼你認爲什麼是錯的? –

回答

1

乍一看這部分代碼看起來是正確的,因此您可能需要展示更多的整體程序,以便我們可以檢查init函數和您調用的其他方法之間會發生什麼。

有兩件事情出了藍色:

  • 請確保調用保留在你的精靈,這樣它不會草率地刪除,直到你用它做
  • 什麼是「自我」正是這裏,它是一個椰子層嗎?圖層是否正確添加到場景中(即,即使它不移動,您是否看到正在顯示的精靈)?
  • 我還會看看場景圖中是否有可能在「init」調用和您的第二種方法之間發生任何事情,其中​​您執行動畫代碼。有沒有StopAllActions? removeFromParent或removeAllChildren,也許?

乾杯

+0

1st Bullet:好的,當我使用保留時,我應該如何正確釋放它? 第二子彈:這是一個CCLayer。精靈正在顯示,但沒有被動畫。 3rd Bullet:在dealloc方法中只有一個removeAllChildren。在任何地方都沒有停電事故。 –

+0

我修正了它,結果是Box2D代碼干擾了CCSprite。無論如何都是Upvoted和Accepted!歡迎來到StackOverflow! :) –

+0

謝謝 - 很高興你發現故障! –