Class: Miyako::MapDir
Overview
アクセス方向定義クラス
マップチップのアクセステーブルを参照する際に、状態(入る(:in)・出る(:out))と 方向(:left, :right, :up, :down)から、アクセステーブルの指標を取得する必要がある。 このクラスでは、その指標を取得するメソッドを用意している
Constant Summary collapse
- @@accesses =
{ in: { right: 2, left: 4, up: 6, down: 0}, out: { right: 3, left: 5, up: 1, down: 7} }
- @@accesses2 =
{ in: [[-1,0,6],[2,-1,-1],[4,-1,-1]], out: [[-1,7,1],[3,-1,-1],[5,-1,-1]] }
Class Method Summary collapse
-
.index(state, direction) ⇒ Object
状態と方向からアクセステーブルの指標を取得する アクセステーブルには、2種類の状態(入る=:in, 出る=:out)と、 4種類の方向(左=:left, 右=:right, 上=:up, 下=:down)から構成される 配列となっている。本メソッドで、状態・方向に対応するシンボルから配列の要素指標を取得する。 指定外のシンボルを渡すと例外が発生する state:: 状態を示すシンボル(:in, :out) direction:: 方向を示すシンボル(:left, :right, :up, :down) 返却値:: アクセステーブルの指標番号(整数).
-
.index2(state, dx, dy) ⇒ Object
状態と移動量からアクセステーブルの指標を取得する アクセステーブルには、2種類の状態(入る=:in, 出る=:out)と、移動量(dx,dy)から構成される 配列となっている。本メソッドで、状態に対応するシンボル、整数から配列の要素指標を取得する。 指定外のシンボルを渡すと例外が発生する state:: 状態を示すシンボル(:in, :out) dx:: x方向移動量 dy:: y方向移動量 返却値:: アクセステーブルの指標番号(整数)。何も移動しない場合は-1が返る.
Class Method Details
.index(state, direction) ⇒ Object
状態と方向からアクセステーブルの指標を取得する
アクセステーブルには、2種類の状態(入る=:in, 出る=:out)と、 4種類の方向(左=:left, 右=:right, 上=:up, 下=:down)から構成される 配列となっている。本メソッドで、状態・方向に対応するシンボルから配列の要素指標を取得する。 指定外のシンボルを渡すと例外が発生する
- state
-
状態を示すシンボル(:in, :out)
- direction
-
方向を示すシンボル(:left, :right, :up, :down)
- 返却値
-
アクセステーブルの指標番号(整数)
247 248 249 250 251 |
# File 'lib/Miyako/API/map_struct.rb', line 247 def MapDir.index(state, direction) raise MiyakoValueError, "can't find AcceessIndex state symbol! #{state}" unless @@accesses.has_key?(state) raise MiyakoValueError, "can't find AcceessIndex direction symbol! #{direction}" unless @@accesses[state].has_key?(direction) return @@accesses[state][direction] end |
.index2(state, dx, dy) ⇒ Object
状態と移動量からアクセステーブルの指標を取得する
アクセステーブルには、2種類の状態(入る=:in, 出る=:out)と、移動量(dx,dy)から構成される 配列となっている。本メソッドで、状態に対応するシンボル、整数から配列の要素指標を取得する。 指定外のシンボルを渡すと例外が発生する
- state
-
状態を示すシンボル(:in, :out)
- dx
-
x方向移動量
- dy
-
y方向移動量
- 返却値
-
アクセステーブルの指標番号(整数)。何も移動しない場合は-1が返る
261 262 263 264 |
# File 'lib/Miyako/API/map_struct.rb', line 261 def MapDir.index2(state, dx, dy) raise MiyakoValueError, "can't find AcceessIndex state symbol! #{state}" unless @@accesses.has_key?(state) return @@accesses2[state][dx < -1 ? -1 : dx > 1 ? 1 : 0][dy < -1 ? -1 : dy > 1 ? 1 : 0] end |