我正在尝试创建一个简单的应用程序,非常简单。
我不知道为什么,但当我点击左箭头或右箭头时,纹理不会改变它的位置。
我确信我错过了什么,无法想象什么,会显得愚蠢。
主档案:http://paste.ubuntu.com/919662/
Character.cs:http://paste.ubuntu.com/919664/
Position.cs:http://paste.ubuntu.com/919665/
非常感谢。
答案 0 :(得分:3)
更新的答案:
真正的罪魁祸首是:
KeyboardState Keyboard = new KeyboardState();
您不能将'Keyboard'用作变量名称。这是来自XNA的课程!你正在重新宣布它。因此,您的按键不再被检测到!请改用:
KeyboardState keyb = Keyboard.GetState();
并更新您的参考资料
这个答案有点有效:
您正在初始化角色
C = new Character(100, 100, new Position(200, 200));
但是在你的Update()方法中你可以:
spriteBatch.Draw(myTexture, myVector, Color.White);
您正在修改Character类中Pos的值,但这与myTexture没有任何关联。事实上,你根本不在屏幕上画“角色”。
TL; DR:你正在修改“角色”类,但是你正在绘制myTexture。您将修改包含myTexture的对象上的坐标,而不是Character。
此外,如果您想在屏幕上绘制“角色”,最好的方法是使用Vector2D而不是您自己的Pos类。
还有一件事:
在LoadContent中你正在做
myVector = new Vector2(C.Pos.Col, C.Pos.Row);
但文件明确指出: /// LoadContent将在每场比赛中被称为一次,并且是加载的地方 ///你的所有内容。
这应该让你开始如何解决它。如果您仍有疑问,请在我的回答下发表评论。