作成中のブラウザ ゲームの座標系用に作成したピクセル マップを使用しようとしています。各色は、ゲームのさまざまな側面に影響を与える関連する値を持つ地形タイプを表します。
質問: PHP または JavaScript を使用して画像をピクセル単位で「読み取り」、配列内の各ピクセルの色の値を返してデータベースに格納し、各色を自分の x にすばやく追加できるようにする方法はありますか? 、コーナーではなく画像の中心に基づくy座標?
作成中のブラウザ ゲームの座標系用に作成したピクセル マップを使用しようとしています。各色は、ゲームのさまざまな側面に影響を与える関連する値を持つ地形タイプを表します。
質問: PHP または JavaScript を使用して画像をピクセル単位で「読み取り」、配列内の各ピクセルの色の値を返してデータベースに格納し、各色を自分の x にすばやく追加できるようにする方法はありますか? 、コーナーではなく画像の中心に基づくy座標?
JavaScript ベースのゲームの場合、クライアント側で配列をハードコーディングし、そこに重要な座標のみを格納して配列のサイズを小さくし、頻繁にチェックする必要がないようにすることをお勧めします。次に、現在のほとんどの最新のチェス エンジンが機能するのと同じように、ビットマップ/ビットボード表現に切り替えます。次に、壁、空、階段など、考えられるブロック タイプごとにビットマップを用意します。ビットマップの概念は、関心のある部分の座標をマッピングすることです。マップ上のピースにはブール値の true 値が与えられ、マップされていない座標にはブール値の false 値が与えられます。次に、ブロック タイプごとにこのプロセスを繰り返します。
例えば
walls:[[3,-7],[-8,9],[30,67],[31,67],[32,68]]
ustairs:[[4,6],[7,8],[8,9]]
dstairs:[[7,6],[-2,-4],[-7,-9]]
ビットマップ/ビットボード表現に切り替えないことにした場合でも、データベースのバックエンドにすべての座標を保存することになった場合は、少なくともデータベースのバックエンドに慈悲を持ってください。
PHP のimagecolorat()
関数を使用してデータベースにデータを入力することもできますが、座標を確認する必要があるたびに実行時にこの関数を使用することに反対します。この関数は、PNG などのインデックスのない画像でうまく機能します。
しかし、GIF などのインデックス付きの画像を PHP で開いた場合は、画像の色の値を取得する前に、画像で使用されているインデックスの色を調べる必要があります。したがって、 を使用しますimagecolorsforindex()
。編集:すみません、つまりimagecolorexact()