2

を使ってゲームを作っていcanvasます。

ゲームの初期化時にランダムに生成される地形があります。地形は、ゲーム内の武器によって破壊可能です。

生成したい地形の例を次に示します

この 2D 地形を生成すると...

  • 座標ごとにピークを単純に保存するのが最善xですか、それとも地形であるすべてのピクセルを保存するのが最善ですか?
  • 武器ダメージで一部が削られた場合、そのピクセルをオフにしてから地形を描き直すか、保存されている武器ダメージでそれぞれがオンになっているかを確認しながら地形を描き直す必要がありますか? または、武器の損傷時に、地形状態の各ピークを調整してから再描画する必要がありますか?
4

3 に答える 3

2

地形を2D配列で安全に保存できると思います。3000x1000のようなサイズのboolの配列があると怖いように見えるかもしれませんが、そのような配列をトラバースするのはまだ非常に高速ですのでご安心ください。この配列全体を10回トラバースしても、スムーズなアニメーション速度を維持できます。

于 2011-03-06T14:58:33.220 に答える
1

そう、焦土!私が覚えている限りでは、元の地表の下にさえも、円形の地形ボリュームを爆撃することができました (リープフロッグ!)。地形は崩壊し、隙間を埋めます。したがって、サーフェスのポリゴン頂点座標のみを保存するだけでは十分ではありません。ピクセルごとの配列アプローチは、より良いアイデアのようです。

再描画の問題は依然として困難です。キャンバス全体を 30fps で再描画するのは現実的ではないと思います。たぶん、武器の影響を受けた/崩れたピクセルのみを再描画できます。

于 2011-03-06T11:04:39.017 に答える
0

地形をサブスクエアに分割するとしましょう。

前:

+---------------------------+
|           ______       /  |
|   ___    /      \     /   |
|  /   \__/        \___/    |
|-/                         |
|                           |
|                           |
|                           |
+---------------------------+

後:

+---------------------------+
|    |    | ___|__  |    |  |
|   _|_   |/   |  \ |   /|  |
|  / | \__/    |   \|__/ |  |
|-/--|----------------------|
|    |    |    |    |    |  |
|    |    |    |    |    |  |
|    |    |    |    |    |  |
+---------------------------+

これらのサブセクションには、次の 3 つの状態があります。

  1. すべての地形
  2. すべて空白
  3. 分割する

これにより、コードの可読性を大幅に犠牲にすることなく、適切な最適化が行われるはずです。

于 2011-03-07T04:56:45.633 に答える