Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在C#/asp.Net/Razor中异步获取用户键盘输入_Javascript_C#_Asp.net Mvc_Razor - Fatal编程技术网

Javascript 如何在C#/asp.Net/Razor中异步获取用户键盘输入

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"&

我在制作一个简单的游戏《吃豆人》。我唯一有问题的是如何通过键盘从用户那里获取输入来改变pacman的方向(左、右、上、下)

目前,我正在使用html按钮将窗口重定向到操作,该操作会更改“core”类中的变量。它可以工作,但并非总是如此。Pacman通过javascript超时函数移动,其中每250毫秒,Pacman沿存储在上述变量中的方向移动一次。有时捕捉按钮点击会出现问题。(我猜是因为js超时)谢谢你的帮助

提到的JS代码:

<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编写游戏逻辑。