2011-10-27 6 views
0

私は、ユーザーがスクリーン上でスプライトを上下にドラッグして、入ってくる障害物を避けようとしているゲームを作ろうとしています。最後の答えはhereで、スプライトを画面上にドラッグするのに役立ちましたが、私はスプライトを移動できる最高速度を設定したいと思います(自然に見える加速/減速でうまくいけば)。オブジェクトを避けてください。iPhone用のcocos2dでスプライトをドラッグする - 最大速度で

誰でも私がこれを達成するためにコードを変更する方法を知っていますか、それとも別の方法がありますか?

感謝:)

答えて

2

あなたは、あなたの指の位置であるCGPoint destinationPosition変数を維持し、それが位置だ修正する更新ループを使用する必要があります:あなたは、if秒で

-(void) update:(ccTime) dt 
{ 
    CGPoint currentPosition = draggableObject.position.x; 
    if (destination.x != currentPosition.x) 
    { 
     currentPosition.x += (destination.x - currentPosition.x)/5.0f; // This 5.0f is how fast you want the object to move to it's destination 
    } 
    if (destination.y != currentPosition.y) 
    { 
     currentPosition.y += (destination.y - currentPosition.y)/5.0f; 
    } 
    draggableObject.postion = currentPosition; 
} 

丸め誤差を許容するために正確に同じ数ではなく、オブジェクトが互いに接近しているかどうかを確認したい場合があります。

+0

甘い!魅力のように動作します、ありがとう! :) – Jambaman

0

時刻やタッチなど、使用しているスケジュールアップデータにifステートメントが必要です。

私はあなたにx/yの速度があると推測していますか?あなたの更新ステートメントの中で、あなたの加速がどこであれ -

if(acceleration.x > 20){ 
acceleration.x = 20; 
} 

if(acceleration.y > 20){ 
acceleration.y = 20; 
} 
関連する問題