- 324 名前:304 mailto:sage [2005/08/07(日) 01:21:46 ID:oc41e6p7.net]
- >>310
>>304の、16進2桁で、ワープ+8方向から来た場合を 9つ並べる表記なら可能。その例なら、 上/下から来た場合:左&右(40+04=44)に移動可能 左/右から来た場合:上&下(01+10=11)に移動可能 ワープしてきた場合:上下左右(01+10+40+04=55)に移動可能 と表現できる。「来た方向」をテンキー表記で並べれば 01_02_03_04_05_06_07_08_09(テンキーの方向) 00_44_00_11_55_11_00_44_00(用意するデータ) になる。ビット表記なら時計回りにデータが並ぶ。 アンダーバーは区切りにしただけで、実際は 18文字の16進数がマスの移動データになる。ここ から2文字ずつ抜いていくことで移動方向を決める ことができ、「二次元+8方向&ワープ」で マップが表現されている限り、この表記で対応 できるはず。 上下左右:55だけを設定しておき、移動制限用の 関数でつぶす(=来た方向+進行方向のビットを 消す)方法もある。データが短くて済むが、関数を 個別に設定するのが面倒だし、マップデータから 方向を抜いてくる方が処理しやすかったりする。
|

|