0

ちょっとしたミニゲーム用の画像/キャラクターがあります。私は彼をジャンプさせたり、左右に動かしたりできます。私は、スーパーマリオがレンガに着陸したり、落書きジャンプ(ジャンプなし)のような他の画像に着陸できるようにしたいと思っています。画像がジャンプして落下すると、別の画像に着地すると停止するようにするにはどうすればよいですか。ありがとうございました!

私のジャンプコード:

[UIView animateWithDuration:.5 delay:0.0
                options:UIViewAnimationOptionCurveEaseOut
             animations:^{
                 CGRect f = imageView.frame;
                 f.origin.y -= 40;
                 imView.frame = f;
             }
             completion:^(BOOL finished){

[UIView animateWithDuration:.7 delay:0.0
                options:UIViewAnimationOptionCurveEaseOut
             animations:^{
                 CGRect f = imageView.frame;
                 f.origin.y += 40;
                 imView.frame = f;
             }
             completion:nil];
4

1 に答える 1

0

これが単純なアニメーションでできるとは思えません。UIViewこれはもっと重要Cocosなことです。このタイプのアニメーションを使用する場合、留意する必要があることがあります。画面上では、ある点から別の点へとアニメーション化された画像が表示されますが、このプロセス全体を通して、画像には実際には 2 つのフレームしかありません。アニメーションが始まる前のフレームで、最後のフレームです。

さらに、アニメーションの開始後に画像のフレームを読み取ろうとすると、常に終了位置が記録されます。画像には前後の 2 つのフレームしかありません。アニメーションが開始されると、そのフレームは終了フレームに設定され、基本的にそこに到達するためだけに作業しています。(アニメーション)

そうは言っても、この形式のアニメーションでは衝突検出の余地はありません。次のシナリオを見てみましょう。

_ A _ ============= _ B _ ========== _ C _

^開始^------^パス^----^衝突-------- ^終了

アニメーションはフレーム「A」から開始し、ポイント「C」で終了するように設定されています。「B」で衝突を検出したいのですが、ポイント「A」と「C」しか認識していないため、「B」と交差したフレームであることを画像が認識できないため、残念ながらできません。

お役に立てれば!

于 2012-08-05T08:08:27.513 に答える