現時点では、キーボードとゲームパッドを使用して船を動かす方法を知っていますが、マウスでも船を動かす方法を見つけようとしています(たとえば、画面のどこかをクリックすると、プレーヤーはその場所に移動します) 。ゲーム内に表示するマウスを持っていますが、それを追跡してクリックなどを受け入れるにはどうすればよいですか?
2 に答える
1
マウス カーソルの画面座標をインワールド座標に変換してから、プレーヤーをそのインワールド座標に移動する必要があります。
動きは状況(ゲーム)によって異なりますが、最も単純なケースは
- プレーヤーの現在の位置と目的の新しい位置を結ぶベクトルを計算し、
- 単位時間内の動きを表すサイズにベクトルを正規化し、
- 次に、目的地に到達するまで、プレーヤーの座標を正規化されたベクトルで更新します
于 2012-05-23T15:41:55.643 に答える
0
このようなものを使用して、マウスの状態を取得し、そこから座標を取得します。次に、ゲームでタイルのサイズを使用します (プレーヤーがタイルに移動する場合、それ以外の場合は無視します)。
MouseState ms = Mouse.GetState();
double x = Math.Floor(((double)ms.X / (double)TILE WIDTH);
double y = Math.Floor(((double)ms.Y / (double)TILE HEIGHT);
if (ms.RightButton == ButtonState.Pressed)
{
//Player.Position = new Vector2(x,y)... or something like that
}
if (ms.LeftButton == ButtonState.Pressed)
{
//And so on...
}
于 2012-05-23T20:12:42.043 に答える