這是我的第一個問題,我剛剛開始在C#中編寫代碼,所以如果我在做一些愚蠢的事情,請客氣一點。事情是,我想用xna編寫一個小型的2D遊戲,因此我創建了一個帶紋理的32x32 px盒子,這個盒子應該是玩家。我可以使用箭頭鍵通過寫入一個類的播放機等如何使用Vector2 {get; set;}來計算方塊的角點
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是像素的量來移動播放器,與一個鍵擊球員移動。 我想要是寫這樣的
class Player
{
public Texture2D Textur;
public Vector2 Position { get; set; }
public Vector2 UpperRightCorner = new Vector2(Position.X + 32, Position.Y);
}
但很明顯,這是行不通的。甚至認爲我讀了msdn上關於get的文檔;組;我真的不明白,它是如何工作的。 我需要角落,或者更確切地說是角落旁邊的像素來編寫碰撞方法。這種方法應該每次都要問,當我按下一個箭頭鍵時,播放器前面有什麼樣的水平方塊,然後調整速度。如果有固體塊(如牆),將運動設置爲0。
任何想法,我怎麼能寫這個角落的東西在玩家類?我可以在實例化玩家後在主類中調用它,但我更願意將它放入玩家類。
看到http://gamedev.stackexchange.com/questions/20703/bounding-box-of-a-rotated-rectangle -2d –