gpt4 book ai didi

jquery - 游戏 : Keyboard Input Simultaneously (Run & Jump)

转载 作者:行者123 更新时间:2023-12-01 05:57:13 25 4
gpt4 key购买 nike

我正在尝试创建一个由jquery驱动的平台游戏,但我最多只是一个新手。我遇到的第一个问题是同时键盘输入(可以说是运行和跳跃)。只是想知道我做错了什么;

var tickRate = 100,
slideB = 0,
slideC = 0,
oldV = 0,
time = 0;

$('body').keydown(function(e){
e.stopPropagation();
if (e.keyCode == '38') { jump(); }
if (e.keyCode == '40') { }
if (e.keyCode == '37') { slideB += 1; run(); }
if (e.keyCode == '39') { slideB -= 1; run(); }
$("#Background").css('left', (slideB * 10) + 'px');
$("#Tell").html(slideB);
});

var run = function() {
slideC -= 1;
if (slideC < -20) {slideC = 0;}
$("#Sprite").html(slideC * -11);
};

var jump = function(){
$("#Character").animate({ top: "50px" },{ duration: 1000, easing: "easeOutQuad" });
$("#Character").animate({ top: "200px" },{ duration: 1000, easing: "easeInQuad" });
}

目前,如果我按下“运行”(向右箭头),那么我会跳跃(向上箭头),停止运行,直到再次按下“运行”。

我有时需要一个向上计数器,所以也许我可以结合一个“检查按键是否被按下”脚本。

任何建议都有帮助。谢谢。

最佳答案

对于一般想法,你可以尝试这样的事情:{您应该根据每个动画持续时间设置间隔持续时间和/或为每个动画使用 .stop() 方法和/或使用标志}

http://jsfiddle.net/7juFk/

(function () {
$('body').on('keydown keyup', function (e) {
e.stopPropagation();
var key = e.which,
type = e.type;
switch (key) {
case 38:
[type == 'keydown' ? jump() : clearInterval(intervalJump)];
break;
case 37:
[type == 'keydown' ? run() : clearInterval(intervalRun)];
break;
}
});
var intervalRun,
intervalJump,
run = function () {
console.log('running');
clearInterval(intervalRun);
intervalRun = setInterval(run, 0);
},
jump = function () {
console.log('jumping');
clearInterval(intervalJump);
intervalJump = setInterval(jump, 0);
}
})();

关于jquery - 游戏 : Keyboard Input Simultaneously (Run & Jump),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14526494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com