javascript - javascript中的跳转机制
问题描述
我目前正在制作游戏,这就是跳跃机制。它背后的想法是它上升500ms,等待200ms,然后回到地面(地面在顶部471)。现在一切正常,但是当它位于顶部 471 时它并没有停止我尝试这样做:
if (characterTop > 471) {
stopMoveDown()
}
那没有用,所以我尝试这样做:(在movingDown函数中)
if (characterTop > -1 || character < 471) {
character.style.top = top + "px";
}
这两个都不起作用。
还有一个问题,我怎样才能确保玩家在跳跃时不能再次跳跃?
这是我现在的代码:
document.body.onkeydown = function(e){
if(e.keyCode == 32){
jump = setInterval(function(){
let top =
parseInt (window.getComputedStyle(character).getPropertyValue("top"));
top -= 1;
var characterTop = parseInt(
window.getComputedStyle(character).getPropertyValue("top")
)
if (characterTop > -1 || character < 471) {
character.style.top = top + "px";
}
}, 1);
setTimeout(function() {
stopMoveUp()
}, 500);
setTimeout(function() {
movingDown()
}, 700);
//if (characterTop > 471) {
// stopMoveDown()
//}
}
}
function movingDown() {
falling = setInterval(function(){
let top =
parseInt (window.getComputedStyle(character).getPropertyValue("top"));
top += 1;
var characterTop = parseInt(
window.getComputedStyle(character).getPropertyValue("top")
)
if (characterTop > -1 || character < 471) {
character.style.top = top + "px";
}
}, 1);
}
function stopMoveUp() {
clearInterval(jump);
}
function stopMoveDown() {
clearInterval(movingDown);
}
var movingRight = false;
var movingLeft = false;
有人可以帮我解决这两个问题吗?
解决方案
推荐阅读
- ios - TextField 在其他视图中通过协议更改值,如果用户更改 textField 输入如何存储值
- react-native - React Native Fetch data from api issue
- node.js - heroku push 卡住了
- powershell - 我正在做 3 个连续的 foreach 循环,它花费了很多时间?有没有更好的方法来解决这个难题?
- javascript - 使用 Express 异步错误的 Stange 行为
- javascript - JavaScript/DOM:MutationObserver 检测 DOM 树中任何位置的 `lang` 属性的变化
- unit-testing - 如何在 test.check 中生成随机电子邮件地址?
- html - 如何使用flexbox删除div之间的空白
- python - 模型表单中 ChoiceField 的小部件
- regex - 仅在存在某些子字符串的情况下使用非捕获组