0

プレイヤーが 4 方向に移動する cocos2d のタイルマップ ベースのゲームに取り組んでおり、左、右、上、下などのプレイヤーの動きに 4 つの画像を使用しました。私の問題は、背景マップが位置を変更したり、他の位置に移動したりしても、スプライトの位置が変わらないことです。背景の動きに合わせてスプライトを移動する方法を誰か教えてください。

4

3 に答える 3

0

タイルマップ ベースのゲームを処理する方法はいくつかありますが、どちらもあまり便利ではありません。1 つの方法は、キャラクターを常に画面の中央に置き、背景をその下に移動することです。キャラクターが「右」に移動する場合は、背景を左にスライドさせるだけです。これにより、キャラクターがマップ上を移動しているように見えますが、実際には中央に留まっています。このパラダイムの下では、画面空間だけでなく、すべての検出/衝突をワールド空間に変換することを忘れないでください。すべてを変換しない場合、衝突/検出の「範囲」は画面のサイズに制限されます。

2 番目の方法は、世界中でカメラをパンすることです。キャラクターを画面の中央に置いたままにしますが、実際にはワールド内を動き回り、カメラが追従します。これは、現実の世界と同じようにゲームの世界を見ることができるため、私には最も直感的に理解できます。また、キャラクターの位置と世界が「そのまま」機能し、変換する必要がないため、衝突の処理がはるかに簡単になります。ここでの欠点は、Cocos2D では CCCamera を簡単に使用できないことと、その点でドキュメントが少し薄いことです。

あなたの特定のケースでは、CCLayer に問題があるようです。キャラクターが移動しているレイヤー内にある場合、実際にはマップに対して同じ場所に残ります(説明しているように)。代わりに、マップ上の別のレイヤーにキャラクターを浮かせます。

于 2013-03-08T20:26:53.980 に答える
0

CCNode を使用して、プレーヤーの背景とスプライトの両方を含めます。背景を移動する代わりに、そのノードを移動します。

于 2013-03-08T13:28:48.650 に答える
0

スクロールする Parallex を使用して、スプライトを背景と同じレイヤーに追加できます。彼らは一緒に移動します。

于 2013-03-11T16:14:56.427 に答える