[過去ログ] Delphiゲームプログラミング相談室 (976レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
271(1): 名前は開発中のものです。 [sage] 03/05/17 15:57 ID:LhaqdzNz(1/4) AAS
>>270ああ、HEXマップをいじっている時に私もつまづいたなぁ…。
とりあえず、私の使っている方法。
”HEXマップにおける距離”=”ユニット(コマ)が進む数”だから、
0 1 2 3
┌─┬─┬─┬─┬
0│ │ │ │ │
└┬┴┬┴┬┴┬┴
1 │ │ │ │
┌┴┬┴┬┴┬┴┬
2│ │ │ │ │
…のように、レンガ壁状のマップで考えます。
そして、この1コマを4分割。
□□□□□□□□
□□□□□□□□
□□□□□□□□
□□□□□□□□
□□□□□□□□
□□□□□□□□
あとは、直線の距離を出して、2で割ればOK。
272(4): 名前は開発中のものです。 [sage] 03/05/17 15:58 ID:LhaqdzNz(2/4) AAS
>>271 の続き
(x0,y0)〜(y1,y0)の距離を出したかったら、
xq0 := (x0 * 2)+(x0 mod 2); yq0 := y0 * 2;
xq1 := (x1 * 2)+(x1 mod 2); yq1 := y1 * 2;
xlen := Abs(x1-x0)+1; ylen := Abs(y1-y0)+1;
hexlen := Sqrt( xlen*xlen + ylen*ylen ) / 2 + 1;
で、算出できるはずです。(メンドいから整数と実数の変換は略)
273: 名前は開発中のものです。 [sage] 03/05/17 16:01 ID:LhaqdzNz(3/4) AAS
>>272
ゴメン、間違えた。
× xlen := Abs(x1-x0)+1; ylen := Abs(y1-y0)+1;
じゃなくて
◎ xlen := Abs(xq1-xq0)+1; ylen := Abs(yq1-yq0)+1;
ね。
274(1): 272 [sage] 03/05/17 16:16 ID:LhaqdzNz(4/4) AAS
>>272 また訂正。 何やってるんだ俺は……。(恥)
xq0 := (x0 * 2)+(y0 mod 2); yq0 := y0 * 2;
xq1 := (x1 * 2)+(y1 mod 2); yq1 := y1 * 2;
xlen := Abs(xq1-xq0)+1; ylen := Abs(yq1-yq0)+1;
hexlen := Sqrt( xlen*xlen + ylen*ylen ) / 2 + 1;
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.026s