2012-03-17 8 views
0

私は私のためにCCAnimationのを設定する方法を持っているCocos2dは、C#でオブジェクトを保持

私はこの

whiteDogBeginFalling = SetupAnimations("GameGraphics/dog/falling/white-falling", 7, 1) 

のように呼び出すしかし、私はゲームを実行すると、アニメーションが再生されない

public CCAnimation SetupAnimations(string prefixOFSprite, int numberOfFrames, int startFrame) 
    { 
     //me getting desperate and doing any old initilisation 
     CCAnimation finalAnimation = new CCAnimation(); 
     finalAnimation = CCAnimation.animation(); 

     for (int i = startFrame; i < numberOfFrames + 1; i++) 
     { 
      finalAnimation.addFrameWithFileName(prefixOFSprite + "-" + i); 
     } 

     float delay = 0.07f; 
     finalAnimation.setDelay(delay); 

     return finalAnimation; 

:(これは私のゲームをiOSから移植したもので、この問題を丸ごと追加しています。

[whiteDogBeginFalling retain] 

メソッドコール直後。

これはC#バージョンのcocos2dでどのように行いますか?それとも誰かが私に別の解決策を提案するのを助けることができますか?事前

答えて

1

おかげで「保持追加することによって、問題を歩き回る」あなたは(当時)にObjCメモリ管理を理解していなかったようですね。

私はObjCコードの保持が間違っている可能性を調査します。 C#には保持がないので、オブジェクトはC#で解放されているように見えますが、オブジェクトに保持されている参照がないことを意味します。したがって、ガベージコレクションされます。これは、ObjCバージョンの保持がオブジェクトを解放するという問題を修正したが、そこにメモリリークがある可能性があることを示しています。

ObjCで問題を正しく修正する方法を理解できれば、C#で修正する方法もわかります。

+0

ありがとうございました。私はメインゲームクラスからアニメーションを再生しようとしましたがうまくいきます。アニマルクラスからアニメーションを実行しようとすると唯一の問題と思われます(メソッドを介してクラスに渡します)。それはCCNodeを継承し、アニメーションを実行するためのスプライトを持っています。なぜガベージコレクションが私にそれをクリアするのでしょうか? – user819640

関連する問題