我有一个问题,比如说我们有一块500码高的板子,我们有一个下降块,它抓住y并将其移动到自己的变量,将静态y变为动态y现在是下降块的y,如果当该块在板上达到350 y时,它只在if语句中执行一次代码。我遇到的问题是它是在350以下的每个y,一直到500。
下面只是我所拥有的一小部分片段,在此之前,默认y设置为135,dy设置为-1;然后在函数内部将y设置为y-dy,并且块正在下降。它在if语句中检查它是否超过某个点,然后记录一条消息,但问题是,对于每个点y超过351它会记录消息,我只想让它做一次,有没有办法我可以使用==或者我应该将变量设置为y或类似的东西。
这是代码。
var y = y-dy;
curVal = 0;
ctx.drawImage(block,x,y,50,50);
if(y > 351 && x < 64){
console.log('RED!');
//set the value of the block here
curVal = curVal + randNum;
console.log(curVal);
}
如果我不能这样做,有没有办法让事件发生一次?
答案 0 :(得分:0)
声明一个全局变量:
var flag = true;
并像这样使用它:
if(y > 351 && x < 64 && flag){
flag = false;
...
这将确保if
块最多执行一次。