如果有多个实例,则执行一次方法

时间:2014-08-18 10:41:36

标签: javascript

我有一个问题,比如说我们有一块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);
}

如果我不能这样做,有没有办法让事件发生一次?

1 个答案:

答案 0 :(得分:0)

声明一个全局变量:

var flag = true;

并像这样使用它:

if(y > 351 && x < 64 && flag){
    flag = false;
    ...

这将确保if块最多执行一次。