2012-03-21 25 views
0

iPhone/iPad用のアプリ内に3つの異なる視差のあるレイヤーで構成された大きな画像を表示するには、cocos2dを使用しています。ユーザーはこの大きな画像をパンすることができます。cocos2dの大きな画像の可視領域のみを読み込む

これらの画像は約13000ピクセルの幅になります。そのため、メモリ使用量が懸念されます。 理想的には、現在表示されているものに基づいて画像をグリッド化してサブセクションをロードしたいと考えています。

cocos2dにはこれに役立つ何かが含まれていますか? タイルマップ(CCTMXTiledMap上で動作するプロトタイプがあります)を使用して見ましたが、実際にはタイルマップの優れたアプリケーションではないようです。繰り返される小さな画像の大きな画像のすべてのタイルはユニークになります。

これを行うための最善の方法についてお気軽にお問い合わせください。

答えて

1

iPhoneプログラマがスクリーンをスクロールしながらバックグラウンドスレッドに画像を読み込んでいるブログに投稿が表示されるのを覚えています。スクロールが速すぎない限り、滑らかなスクロールを達成することは問題ではないと彼は言った。

基本的には、画面のスクロール先に基づいて画像のセクションを読み込み、画面の境界から離れた画像の割り当てを解除します。したがって、画面自体があり、プレーヤーの前後に移動する場合(左または右など)には、バッファの役割を果たす画面の端に境界線があります。

私はリンクを見つけることができたらいいですが、30分間検索した後、私はあきらめました。私は彼のビデオを見て、それは非常にスムーズにスクロールした。

+0

ええ、これは私が昨晩実装したものです。私たちはまだあなたの周りをパンニングとしていくつかのジッタをテクスチャをロードします。テクスチャをあらかじめキャッシュしたり、バッファをたくさん入れてバックグラウンドで読み込んだりすることで修正できるかもしれません。 – tobyc

+0

画面を9または12の矩形に分割し、1つの矩形に一致する辺の周りにバッファを完全に配置します。プレイヤーの移動に伴い、新しいバッファーをロードします。良いテストは、ローディング速度をテストするために斜めに、次に水平または垂直に動かすことです。シミュレータはテストのための優れたプラットフォームではないため、複数のデバイスでテストします。 – TigerCoding

関連する問題