キャラクターの向き(Direction)について
- カテゴリー: スクリプト
- 重要性: 普通
- 投稿日: 2006-02-06 (月) 03:10:12
Directionの値
North = 0, Right = 1, East = 2, Down = 3, South = 4, Left = 5, West = 6, Mask = 7, Mask = 7, Running = 128, ValueMask = 135
反対の向きを取得するには
現在の向きと反対の向きを取得するには
dir ^ 0x4
とする。最上位ビットとのXORを取れば、半分を中心にした対称の値が得られる。純粋な向きは0~7までなので3ビットで表現できる。この場合、3ビットで100(2進数)となり、最上位ビットの値は4となる。
runningフラグを得るには
bool running = ((dir & Direction.Running) != 0); で得られる。
純粋な向きを得る
純粋な向きだけを得たい場合、Runningなどのフラグが邪魔になる。そういう場合は
public static Direction RunningOff(Direction dir)
{
//runningフラグがあるかチェック
bool running = ((dir & Direction.Running) != 0);
if (running)//runningフラグがあるなら
dir -= Direction.Running;//runningフラグを取り除く
return dir;
}
とすればRunningフラグを取り除ける。
向きごとの移動量
North: Y-1 Right: X+1, Y-1 East: X+1 Down: X+1, Y+1 South: Y+1 Left: X-1, Y+1 West: X-1 Up: X-1, Y-1;