2012-02-22 10 views
1

私はビューポートよりもはるかに大きなゲームワールドを持っています。メインキャラクターは常にビューポートの中央にとどまり、バックグラウンドレイヤーは動かされますキャラクターが動く印象を与えるために周りに。キャラクターが左または右のいずれかの方向に移動し続けると、最終的に開始位置に戻ることになるので、ゲームの世界がラップするようにしたいと思います。ゲームの世界には移動するエンティティが存在するので、私が予想している最大の問題は、地図の右端に行くと、左端の最初の小さなセクション内にある移動するエンティティを見ることができるはずです地図。iPhoneでcocos2dを使ってラップするゲーム世界を扱う方法

私はこれについて少し考えており、私が思い付いた解決策ははるかに複雑すぎるようです。 2つの同一のゲーム世界を並べて作成し、それに応じて移動させること。私はこれにエレガントな解決策があることを願って生きています。あなたが共有できる専門知識は、大いに感謝されます。

私はcocos2dをiPhone上で使用していますが、違いがある場合に備えてです。

+0

タイルマップを検索します。 –

+1

球であなたの世界をモデリングすることを検討しましたか? – ElKamina

+0

私は2dゲームエンジンを使用していますが、どうすればよいか分かりません。 – Tiddly

答えて

2

カメラのx、yオフセット、およびスプライトオブジェクトの多次元配列を持つ例があります。

プレーヤーが移動すると、オフセット値が変更されます(例:xMove = -1.4、yMove = + 2.6)。

次に、すべてのタイルの位置を反復して変更します。

次に、画面の中央から離れすぎているスプライト(0,0)を特定し、反対側に再配置すると、常に表示されます。

これは、すべて同じスケジュールされた「ティック」で行われるので、グラフィックアーチファクトは発生しません。

私はまだ誰もラップ可能なタイルマップをcocos2dに作っていないことに驚いています。

1

私はcocos2dに固有のアドバイスを与えることはできませんが、これを行う最も一般的な方法は、1つのゲーム世界を作成し、その部分を何度も描画し、衝突やAIは、必要に応じて折り返しをチェックします。

あなたのプレイヤーキャラクターが世界の角に近ければ、異なるオフセットで世界を4回描くでしょう。これは、世界のすべてのものを画面上に表示するだけで、通常は世界全体を描画するのに必要なものよりも4倍も多くのものを実際に描画する必要はありません。

関連する問題