Tips40


キャラクターの向き(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;


メニュー

オリジナル

T2A

  • InPorYelm?

UOR+T2A

AOS

  • なし

UOML

 

  • counter: 494
  • today: 1
  • yesterday: 0
  • online: 1