如何只更改一次特定图像

时间:2017-04-19 10:50:40

标签: javascript html5 canvas

我做了一个游戏,一辆汽车拿起怪物,我把它算作一个点。所以我现在要做的就是当他拿起一个怪物时将汽车的颜色改为蓝色。一段时间后再变回红色。 所以目前我

isTouching(obj) { // returns true if object is touching box x,y,w,h
    return !(this.x > obj.x + obj.w  || this.y > obj.y + obj.h  || this.x + this.w < obj.x   || this.y + this.h < obj.y );
  },


monsters.array.forEach(monster => {
  if (monster.isTouching(this)) {
    monster.reset();
    monstersCaught += 1;
  }
});  

当一辆汽车接载一名乘客时这样做。所以我试图画出擦掉红色图像并将其改为蓝色图像,并在3秒后再次变回红色。但这不起作用。

我在游戏中工作pen。感谢任何帮助

1 个答案:

答案 0 :(得分:0)

如果你使用console.log(monstersCaught),

monstersCaught += 1;每次都会计数;然后你可能会看到1,2,3等等。我想你想在一段时间后将它重置回0?加上不是吗?尝试检查拼写是否正确并且没有使用其他变量。

编辑:

monsters.array.forEach(monster => {
    if (monster.isTouching(this)) {
        monster.reset();
        monstersCaught += 1;
        //set car color blue
        window.setTimeout(changecar, 5000);
    }
});

function changecar() {
    //set car color back to red
}