我想創建一個簡單的應用程序,非常簡單。C#XNA運動不工作,不能爲什麼
我不知道爲什麼,但是當我點擊左邊的箭頭或者右邊的那個,紋理不會改變它的位置。
我相信我錯過了一些東西,不知道會發生什麼,看起來很愚蠢。
主要文件:http://paste.ubuntu.com/919662/
Character.cs:http://paste.ubuntu.com/919664/
Position.cs:http://paste.ubuntu.com/919665/
非常感謝。
我想創建一個簡單的應用程序,非常簡單。C#XNA運動不工作,不能爲什麼
我不知道爲什麼,但是當我點擊左邊的箭頭或者右邊的那個,紋理不會改變它的位置。
我相信我錯過了一些東西,不知道會發生什麼,看起來很愚蠢。
主要文件:http://paste.ubuntu.com/919662/
Character.cs:http://paste.ubuntu.com/919664/
Position.cs:http://paste.ubuntu.com/919665/
非常感謝。
修訂解答:
真正的罪魁禍首是:
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將被稱爲一次每場比賽,並加載 的地方///所有你的內容。
這應該讓你開始如何解決它。如果您仍有問題,請在我的答案下發表評論。
非常感謝您的幫助,它現在可以工作。我剛從XNA開始學習概念。再次,非常感謝。 – Novak 2012-04-08 02:05:10