キャンバスに多数の六角形をレンダリングする必要があります。私は、ユーザーが見ることができるタイルだけをレンダリングし、ユーザーが(ドラッグまたは矢印キーまたはパンコントロールを使用して)スクロールすると、追加のhextileをロードするようにしたいと考えています。私は私の頭の中で基本的なアイデアを持っていますが、私は、より堅牢なソリューションを考案する上で助けを求めています。六角形のパンコントロール
私が気にかけて今できることは次のとおりです。
a。画面にロードする必要があるタイルを特定し、サーバーからレンダリングするためのデータを取得します。 b。ユーザーがドラッグすると、ロードする必要のあるタイルの新しいセットを把握し、データを取得して画面全体を再度ロードします。
これは機能しますが、スクロール感はありません。本質的に突然、すべてが再配置されます。理想的には、私はこれをスクロールするときにGoogleマップの感覚を得たいと思います。私は地図の横にいくつかのタイルをロードして遊んでいましたが、ドラッグするときに下にあるキャンバスをスクロールするだけでしたが、キャンバスがなくなってしまったためにうまくいきません...キャンバスがあれば本当にきれいです循環バッファーのように振る舞い、あらゆる方向にスクロールすれば、メモリ内に一定数のタイルしか保持されず、すべての方向に連続的にスクロールすることができます。
ご意見やご鞭撻を賜りますようお願い申し上げます。
ありがとうございます!
こんにちはショーン、その詳細なコメントをありがとうございました。私はGoogla Maps APIを探していましたが、私の場合はそれが当てはまるかどうかはわかりませんでした。私はそれ自身で存在する六角形のタイルのリストを持っており、それらの数に制限はありません。さらに、各六角形のタイルは今すぐ別々にレンダリングされます。 gooleマップのフラッシュAPIを使用するには、すべての六角形タイルを並べて1つの大きな画像を作成するだけで済むと思います。各六角形タイルは、の)。これを念頭に置いて追加したコメントも参考になります。 – Azeem
こんにちはAzeem、問題ありません、ご迷惑をかけても問題は解決しません。キャンバスが「使い果たされた」と言うと、グラフィックスの上限が4800x4800を超えてしまうということですか?私はおそらく、あなたは個々のスプライト(あなたが言うようにリサイクル)として六角形のタイルを保持し、マウスイベントをピックアップするためにキャンバスを使用し、スプライトを個別に移動し、必要に応じてロードしてシフトすることができると思います。基本的には、スクロールする必要があるかどうか/プリロードする必要があるかどうかによって、読み込んだ「近い」タイルの量で再生する必要があるかもしれないと思っていますが、一般的なコンセプトは良いと思います。今日は時間があれば実験します。 – shaunhusain