0

こんにちは、私はcocos2dとiPhoneの開発に不慣れです。現在、「PapiJump」のようなゲームを作成しようとしています。現在問題が発生しているのは、ゲーム内のキャラクターCCSpriteをアニメーション化することです。文字、右、左、中央を指す文字(http://i53.tinypic.com/ngzoyh.png)

そのため、キャラクターが方向(左または右)を変更すると、他の方向に直接「ジャンプ」することはありませんが、アニメートします。

TouchesEndedメソッドを使用する私のコードでは、このメソッドでは「touchState」という名前の変数を設定しているため、ユーザーが画面の右側をタッチすると「touchState」が1に設定され、それ以外の場合は2(左を意味します)に設定されます。 )。

次に、「init」メソッドで、0.5秒ごとに別のメソッドを実行する「schedule」を作成しました。「updateGame」、「updateGame」メソッドはプレーヤーの位置を更新し、次のように機能します。player.position = ccp(player .position.x、player.position.y-playerGravity.y);

CCSpritesのアニメーションに関するRayのチュートリアルを読みましたが、必要な結果を達成する方法がわかりません。事前に感謝し、英語が下手で申し訳ありません。

4

3 に答える 3

3
NSMutableArray *walkAnimFrames = [NSMutableArray array];
for(int i = 1; i <= 4; ++i)
{
    [walkAnimFrames addObject: [[CCSpriteFrameCache sharedSpriteFrameCache]     spriteFrameByName: [NSString stringWithFormat:@"spr_fillin_0%d.png", i]]];
}
CCAnimation *walkAnim = [CCAnimation animationWithFrames:walkAnimFrames delay:0.0333f];

_sprite = [CCSprite spriteWithSpriteFrameName:@"spr_fillin_01.png"];
[_sprite runAction:[CCRepeatForever actionWithAction: [CCAnimate actionWithAnimation:walkAnim restoreOriginalFrame:NO]]];

[<CCLAYER OR BATCH NODE> addChild:_sprite];

編集:画像をひっくり返すだけについて話しているようです。でスプライトを再フェッチできます

_sprite = [CCSprite spriteWithSpriteFrameName:@"<New Sprite File>"];

(またはそれらをキャッシュして切り替えます)

于 2012-02-13T17:50:34.963 に答える
0

あなたの質問を明確にすることができますか?別のスプライト フレームを設定する場合は、次を使用できますsetDisplayFrame

CCSpriteFrame *spriteFrame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:frameName];
[sprite setDisplayFrame:frame];

またはアニメーションがある場合:

[sprite runAction:[CCAnimate actionWithAnimation:runAnimation restoreOriginalFrame:NO]];

しかし、質問が少し漠然としているように感じます。

于 2011-04-05T17:24:55.133 に答える
0

質問を適切に受け取った場合、問題を解決する 2 つの方法を提案できます。
まず、オブジェクトが上下逆になるまで回転させ、FlipX(または FlipY) フラグを使用して以前のアニメーションを続行するか、または追加することができます。キャラクターの回転のみをアニメートし、終了するたびに FLipX (または FlipY) ステータスを変更するアニメーション。

于 2011-04-05T18:07:58.813 に答える