2012-04-07 12 views

回答

3

修訂解答:

真正的罪魁禍首是:

KeyboardState鍵盤=新KeyboardState();

您不能使用'鍵盤'作爲變量名稱。這是XNA的一堂課!你正在重新宣佈它。因此,您的按鍵不再被檢測到!而不是使用這樣的:

KeyboardState keyb = Keyboard.GetState(); 

和更新您的引用

這個答案有些有效:

要初始化字符

 C = new Character(100, 100, new Position(200, 200)); 

但隨後你做你的更新()方法:

 spriteBatch.Draw(myTexture, myVector, Color.White); 

您正在修改Character類中Pos的值,但這與myTexture無關。事實上,你甚至都沒有在屏幕上繪製「角色」。

TL; DR:您正在學習「Character」類,但您正在繪製myTexture。您正在修改保存myTexture的對象的座標,而不是Character。

此外,如果要在屏幕上繪製「字符」,最好的方法是使用Vector2D而不是您自己的Pos類。

一兩件事:

在LoadContent你正在做

 myVector = new Vector2(C.Pos.Col, C.Pos.Row); 

但文件明確規定: /// LoadContent將被稱爲一次每場比賽,並加載 的地方///所有你的內容。

這應該讓你開始如何解決它。如果您仍有問題,請在我的答案下發表評論。

+0

非常感謝您的幫助,它現在可以工作。我剛從XNA開始學習概念。再次,非常感謝。 – Novak 2012-04-08 02:05:10