2012-04-22 12 views
0

私が現在取り組んでいるcocos2dのゲームでは、画面の右側に一定のスピードで作成されたスプライトが一定のペースで左に移動してから一度取り除かれます彼らは画面外です。スプライトは画面の端で右に動かない

これは素晴らしいです。しかし、画像が画面の左側に当たると、ビートをスキップして完全に続きます。

これはゲームの1つの要素が2d手続き型の地形であるため、これは本当に目立つものです。私のゲームは無限に長い丘を生成しますが、これはやや小さな塊で行います。これらのチャンクは、互いの直後に配置され、一緒に画面を横切って移動します。しかし、チャンクの左端が画面の左端に当たると、数ピクセル遅延し、結果的に重複してしまいます。

私はチャンクを移動するには、次のコードを使用します。

Chunk.position = CGPointMake(Chunk.position.x - panSpeed, Chunk.position.y); 

は、なぜこれが起こってますか?

+0

カメラが動いている方法。一貫した速度または変数? (私が想定しているpanSpeedはカメラですか?) –

+0

カメラは使用されていません。私のゲームは、私が投稿したコードを使って各チャンクを左に移動させるだけです。 panSpeedは、チャンクを移動するために使用される計算値です。この値はフレームごとに1回計算され、次のフレームまで再計算されないため、フレームごとにすべてのチャンクに対して同じ値が使用されます。だから、私はこれがcocos2dの問題だと仮定します。それぞれが正確に同じ距離だけずれているためですが、画面の左端に当たっても正しく動かないためです。 – Bananable

答えて

0

アップデートに時間デルタを加味していないように見えます。.. CCMoveToアクションのコードで ルック:

-(void) update: (ccTime) t 
{ 
    [target_ setPosition: ccp((startPosition.x + delta.x * t), (startPosition.y + delta.y * t))]; 
} 
+0

デルタ時間はピクセル/フレームではなく固定ピクセル/秒に移動を単に置きます。そのため、フレームレートが変化すると実際の速度は変化しません。 –

+0

panSpeed変数はデルタ時間を考慮します。彼らはすべてビートをスキップしているわけではありません、それは画面を終了し始める画像だけです、残りはすべて正しく行く。 – Bananable

+0

OKイメージが画面を終了するときのコードを投稿します – amleszk

関連する問題