これが私の最初の質問で、数日前にC#でコーディングを始めたばかりです。愚かなことをしている場合は、親切にしてください。問題は、xnaで小さな2Dゲームを書きたいので、テクスチャ付きの32x32 pxのボックスを作成したので、それがプレーヤーになるはずです。矢印キーを使用して、次のようなプレーヤーのクラスを作成することで、プレーヤーを移動できます。
namespace MyGame
{
class Player
{
public Texture2D Textur;
public Vector2 Position { get; set; }
}
}
その後、
KeyboardState keyboard = Keyboard.GetState();
if (keyboard.IsKeyDown(Keys.Right)) player.Position += new Vector(5,0);
//and so on
ここで、5はピクセル数であり、プレーヤーは1回のキーストロークで移動します。私がやろうとしているのは、このようなものを書くことです
class Player
{
public Texture2D Textur;
public Vector2 Position { get; set; }
public Vector2 UpperRightCorner = new Vector2(Position.X + 32, Position.Y);
}
しかし、明らかにそれは機能しません。getに関するmsdnのドキュメントを読んだとしても。セットする; それがどのように機能するのか、私にはよくわかりません。衝突メソッドを作成するには、コーナー、より正確にはコーナーの隣のピクセルが必要です。この方法では、矢印キーを押すたびに、プレーヤーの前にあるレベルブロックの種類を確認してから、速度応答を調整する必要があります。固いブロック(壁など)がある場合は、移動を0に設定します。
任意のアイデア、プレーヤークラスでこのコーナーのものをどのように書くことができますか?プレーヤーをインスタンス化した後、メインクラスで呼び出すことができますが、プレーヤークラスに入れたいと思います。