我正在尝试使用WPF中的箭头键移动代表玩家头像的图像。该代码应允许播放器使用箭头键移动图像,但这不起作用。这是我编写的用于移动图像的代码。
private void Canvas_KeyDown(object sender, KeyEventArgs e)
{
if(e.Key == Key.Down)
{
Canvas.SetTop(player, Canvas.GetTop(player) -10);
}
else if (e.Key == Key.Up)
{
Canvas.SetTop(player, Canvas.GetTop(player) - 10);
}
else if (e.Key == Key.Left)
{
Canvas.SetLeft(player, Canvas.GetLeft(player) - 10);
}
else if (e.Key == Key.Right)
{
Canvas.SetLeft(player, Canvas.GetLeft(player) + 10);
}
}
答案 0 :(得分:0)
首先免责声明:Windwos Forms和WPF等桌面技术不适用于游戏开发。回合制,单人游戏或热门座位多人游戏是您能做的最好的事情。对于Windows Forms,上限是旧的Solitair游戏。 WPF更好一些,但仍然不是一个好选择。
为了进行适当的开发,您需要带有Game Loop的东西。在.NET中,您得到了过时的XNA和these current chioces。
但是回到您的问题: 假设您在画布上注册了该事件,则只有当它具有输入焦点时才会触发该事件。您将无法维护的某些东西。
类似路由和隧道事件之类的东西,但是我认为您真正想要的是热键。但是示例似乎假设您使用了命令模式,然后向其中添加了热键选项: