如何解决为什么我的代码的行为不一致?没有随机化或任何东西
我正在尝试在屏幕上“跳”一个小方块。一切都进行得很顺利,直到我尝试添加一个“ fallSpeed”变量,该变量将改变它以缓慢的速度下落以模仿实际重力(是的,我知道这不是最真实的重力表示,但我只是想使其保持简单) 。)突然将这个变量置入适当位置,大约一半的时间我的代码就会起作用,但是随后一半的时间它就会变得所有故障和异常(是的,我知道,如果您按住空格键或向其发送垃圾邮件,就会发生这种情况,但是那不是我在说的,它只是在您按下空格键时才发生。)是什么让它如此不一致和奇怪,没有任何随机性?
<script>
document.addEventListener("keydown",function(event) {
jump(event);
})
var posX = 500;
var posY = 500;
var fallSpeed = 3;
function moveUp() {
if (posY > 250) {
posY -= 3;
document.getElementById('player').style.marginTop = posY + "px"
fallSpeed += 0.005;
setTimeout(() => {moveUp();},1);
}
else {
return true;
}
}
function moveDown() {
if (posY < 500) {
posY += fallSpeed;
document.getElementById('player').style.marginTop = posY + "px"
fallSpeed += 0.02;
setTimeout(() => {moveDown();},1);
}
else {
fallSpeed = 3;
return;
}
}
function jump(event) {
if (event.key === " ") {
moveUp();
setTimeout(() => {if (moveUp) {
moveDown();
}},399)
}
}
</script>
解决方法
我只是想通了!我需要更改第二个setTimeout()中的延迟,因为它太短了,因为该块现在下降得更快。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。