Javascript 如何在C#/asp.Net/Razor中异步获取用户键盘输入
我在制作一个简单的游戏《吃豆人》。我唯一有问题的是如何通过键盘从用户那里获取输入来改变pacman的方向(左、右、上、下) 目前,我正在使用html按钮将窗口重定向到操作,该操作会更改“core”类中的变量。它可以工作,但并非总是如此。Pacman通过javascript超时函数移动,其中每250毫秒,Pacman沿存储在上述变量中的方向移动一次。有时捕捉按钮点击会出现问题。(我猜是因为js超时)谢谢你的帮助 提到的JS代码:Javascript 如何在C#/asp.Net/Razor中异步获取用户键盘输入,javascript,c#,asp.net-mvc,razor,Javascript,C#,Asp.net Mvc,Razor,我在制作一个简单的游戏《吃豆人》。我唯一有问题的是如何通过键盘从用户那里获取输入来改变pacman的方向(左、右、上、下) 目前,我正在使用html按钮将窗口重定向到操作,该操作会更改“core”类中的变量。它可以工作,但并非总是如此。Pacman通过javascript超时函数移动,其中每250毫秒,Pacman沿存储在上述变量中的方向移动一次。有时捕捉按钮点击会出现问题。(我猜是因为js超时)谢谢你的帮助 提到的JS代码: <script type="text/javascript"&
<script type="text/javascript">
setTimeout(function () {
window.location.href = '/Home/Move';
}, 250);
</script>
setTimeout(函数(){
window.location.href='/Home/Move';
}, 250);
试试这个:
document.onkeydown = function(e) {
if (e.keyCode == '38') {
// up arrow
}
else if (e.keyCode == '40') {
// down arrow
}
else if (e.keyCode == '37') {
// left arrow
}
else if (e.keyCode == '39') {
// right arrow
}
}
我认为你的问题不在于c#或razor页面,而在于Javascript。你需要的是js中的Keylister。这会有帮助:但我认为这不会解决你的问题。您每250毫秒重新加载一次页面。这意味着每秒重新加载4次。在重新加载过程中,无论是点击按钮还是按键都不会起作用,或者延迟。一旦你的游戏不再在本地主机上,情况会变得更糟,因为重新加载需要更多的时间。最后,我没有看到任何异步代码。我认为您应该使用ajax,或者完全用js编写游戏逻辑。