3

プレーヤーからゴールポストまでボールをアニメーション化する必要があるペナルティキックを含む単純なサッカーゲームを開発しようとしています...以前は、タイマーを使用して単純なアニメーションを使用してボール画像の軸に追加していました。あるポイントから別のポイントに移動します..しかし、アニメーションがそれほどスムーズではなかったため、望ましい結果が得られませんでした...ゲームエンジンを使用することを考えていました...私は新しいプログラマーなので、ゲームエンジンについてはわかりませんまた、 box2d、シマリス、スズメなどのエンジンに関する適切なドキュメントも見つかりません..UIViewアニメーションの使用も考えていました以前のアニメーションの代わりに、ゲームエンジンで作業しようとして頭を悩ませることなく、はるかに優れたアニメーションを実現できると思います....私はこれでどこにも行かないので、誰かがこれに光を当てることができれば本当に素晴らしいでしょう.私の問題???

4

2 に答える 2

2

次のように、UIView アニメーションを使用します。

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3]; // or whatever time
object.center=CGPointMake(object.center.x+2, object.center.y+4);
// or whatever
[UIView commitAnimations];

アニメーションをスムーズに呼び出せるように、同じ間隔で NSTimer も使用する必要があります。

NSTimer *timer=[NSTimer scheduledTimerWithTimeInterval:0.3 target: self 
selector:@selector(animation) userInfo: nil repeats: YES];

次に、メソッドを実装します。

- (void)animation {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3]; // or whatever time
    object.center=CGPointMake(object.center.x+5, object.center.y+7);
    // or whatever
    [UIView commitAnimations];    
}

これは、どんな単純なゲームでも行う必要があります。

于 2010-11-29T22:53:42.023 に答える
0

質問に のタグを付けたcocos2dので、それを使用しているか、使用する予定があると思います。たとえば、このゲームhttps://github.com/haqu/tweejumpCCSpritesでわかるように、アニメーション化は簡単です。

onEnter実装では、[self scheduleUpdate] を呼び出すだけです。

update:これは、描画を行うことができる場所を定期的に呼び出します

- (void)update:(ccTime)dt {
    ball_pos.x += ball_velocity.x * dt;
    ball_pos.y += ball_velocity.y * dt;
    ball_velocity.x += ball_acc.x * dt;
    ball_velocity.y += ball_acc.y * dt;

    //game logic goes here (collision, goal, ...)

    ball.position = ball_position;
}

ボールのスムーズな動きを処理します。ball_posball_velocityおよびball_accされていvvCertex2Fます。

おそらく加速を扱う必要さえなく、誰かがボールを打ったときだけボールに衝撃を与えます (つまり、速度を上げます)。

また、ボールの速度を遅くするためにダンピングも必要になるでしょう。あなたはすべてのステップで速度を下げることによってそれを行います

于 2013-03-19T09:21:38.300 に答える