HSP3で3Dゲーム作る(その3)
やっぱり会社が始まると、ペースが落ちますな。んで今回も濃いわ。(苦笑)
実際にプログラムを組んで実行させると、それなりの動きになったので“良し”とした。
■3Dゲームを作るにあたって、自分向けのTips | |
【雲の上から見た地平は[x-z]平面。】![]() [x-z]平面の中心0,0は、ブロック同士の隙間になるので、このままでは身動きがとれない。初期値はなにかしら入れる必要がある。 |
■「各辺'3'の値と持つブロック」を32個縦横に並べられるマスをゲーム上のフィールド範囲としてみた。 ■ブロック単位のx,z軸の座標をそれぞれxB,zBとすると、xB,zBは0~31の値を持つ。 また升目は全部で32x32=1024個。 さらに1辺の長さは3x32=96。 そのうち0が真ん中なので、±48の値がx,zの範囲。 ■1024個の各マスは1つ1つ番号(0~1023)で管理する。 ■任意の座標(x,z)の任意ブロック番号は_ xB=(x+48)/3・・・(1) zB=(z+48)/3・・・(2) 任意ブロック番号=zB x 32 + xB・・・(3) (1)~(3)で導き出すことができる。 |
![]() |
■「3x3のブロック」に対して「自分(=カメラ)は長さ'1'(半径'0.5')」と考えてy軸を中心に360°回転できるとした。 ■すると、1つのブロック枡で自分(=カメラの中心)が動ける範囲は左図グレー部分になる。 |
![]() ■点A~Dの4点の座標を(1)~(3)の計算式に当てはめて各点を含むブロック番号を導き出し、そこにブロックが存在していれば衝突(=先に進めない)と判断することにした。 |
| 固定リンク
コメント