【发布时间】:2016-12-04 03:36:45
【问题描述】:
在下面的代码中,我尝试创建一个游戏。当用户每次按下按钮时,它会生成一个介于 1 到 3 之间的随机数,并将其与之前的分数相加(9 是终点)。还有两个函数 pump() 和 demotive() 。如果用户达到总点 6 pump() 将进入第 8 点。如果用户达到 7 则 demotive() 进入第 3 点。
var k = 0;
document.getElementById("btn").addEventListener("click", function () {
var num = Math.floor(Math.random() * 100);
num = num % 3; /*generate a random no between 0 to 2*/
num = num + 1; /*generate a random no between 1 to 3*/
//alert(num);/* check the no*/
document.getElementById("currnt-value").innerHTML = "you get" + num;
k = k + num;
var parent = document.getElementById('a' + k);
var circle = document.getElementById('crcl');
parent.appendChild(circle);
pump(k);
demotive(k);
});
function pump(val) {
if (val == 6) {
alert("you get pumped");
k = 8;
var parent = document.getElementById('a' + k);
var circle = document.getElementById('crcl');
parent.appendChild(circle);
}
}
function demotive(val) {
if (val == 7) {
alert("oh..!!!you are demotived");
k = 3;
var parent = document.getElementById('a' + k);
var circle = document.getElementById('crcl');
parent.appendChild(circle);
}
}
html,body{
width:100%;height:100%;
}
#board{
width:300px;
height:300px;
border:1px solid #000;
}
#one,#two,#three{
width:100%;
height:100px;
float:left;
}
.flag-point{
width:100px;
float:left;
height:100%;
}
#a8,#a2,#a4,#a6 {
background-color:green;
}
#crcl{
width:30px;
height:30px;
background-color:red;
border:1px solid #000;
border-radius:50%;
}
<div id="crcl"> </div> <button id="btn">move circle</button><p id="currnt-value"></p>
<div id="board">
<div id="one">
<div id="a9" class="flag-point">9</div>
<div id="a8" class="flag-point">8</div>
<div id="a7" class="flag-point">7</div>
</div>
<div id="two">
<div id="a6" class="flag-point">6</div>
<div id="a5" class="flag-point">5</div>
<div id="a4" class="flag-point">4</div>
</div>
<div id="three">
<div id="a3" class="flag-point">3</div>
<div id="a2" class="flag-point">2</div>
<div id="a1" class="flag-point">1</div>
</div>
</div>
但是如果我站在 4 并且如果我得到一个分数“2”然后直接移动到 8 而不是 6 => 8 。我该如何解决这个问题?。我想演示这两个动作(首先从 4 移动到 6,然后从 6 到 8 的抽吸移动)。我怎样才能做到这一点?
【问题讨论】:
-
这些函数肯定不会并行执行。它们一个接一个地发生。
-
@Pointy 对不起,我是 JS 新手,这就是为什么我弄错了,有没有办法一一做,我也尝试过 setTimeOut,但对我没有帮助
-
为什么
4和2会导致8,这似乎正是pump()的目标,正如您所说——4 + 2到达6,然后“ 如果用户达到总点数 6pump()将达到 8.." -
@JonathanLonowski 是的,我想证明用户达到 6 岁,他会感到兴奋
-
@dreamhunter 好的。没关系,但是您的问题并不清楚作为您的目标的行为。
标签: javascript function