【发布时间】:2018-05-31 11:39:34
【问题描述】:
我正在做一个项目,我们必须想出一个游戏,其中方块会根据math.random改变位置
我有两个问题
它似乎正在运行该函数的多个实例,因为在正方形重新定位的几个周期之后 - 它会变得疯狂并以看似随机的间隔在整个地方移动。
第二个问题是我第二次点击方形 div 时很难注册它。
到 JSFiddle 的链接:https://jsfiddle.net/ybpdjujb/
$(document).ready(function test() {
$(document).on('click', '#target', function clicker() {
$('#target').css('left', randPosX);
$('#target').css('top', randPosY);
clearInterval(fire)
timeLeft = 2;
});
//Random
var bodyWidth = $("#playArea").width();
var bodyHeight = $("#playArea").height();
var randPosX = Math.floor((Math.random() * bodyWidth / 1.1));
var randPosY = Math.floor((Math.random() * bodyHeight / 1.1));
//TIMER
var timeLeft = 2;
var elem = document.getElementById('time');
var timerId = setInterval(countdown, 1000);
function countdown() {
if (timeLeft == 0) {
doSomething();
timeLeft = 5;
} else {
elem.innerHTML = timeLeft + ' seconds remaining';
timeLeft--;
}
}
function doSomething() {
$('#target').css('left', randPosX);
$('#target').css('top', randPosY);
clearInterval(timerId);
}
var fire = setInterval(test, 2000);
});
【问题讨论】:
-
这个游戏的目的是什么?继续改变方块的位置,当用户点击它时停止移动?
-
@raghav710 是的,很抱歉我解释得不够好。目标是在计时器用完之前按下方块,然后在新位置产生。 - 如果你设法点击方块,它将在一个新位置产生。随着计时器的重置。
-
查看代码,即使您在给定时间内不按方块,它也会移动到新位置。我想了解点击和不点击之间的区别。有什么不同?
-
@raghav710 ,是的,我只是不擅长解释。在这里忍受我:目标是:你是否足够快地按下方块 - 你有 2 秒 - 如果时间用完,它会移动到一个新的位置。但如果你设法按下它,它也会移动到一个新的位置,但然后给你 1 分表示成功(我需要在这有意义之前实施某种评分)
-
哦……现在明白了。谢谢你的解释。
标签: javascript jquery