js实现坦克大战第一关。控制坦克上下左右移动。函数的onkeydown问题。

JavaScript017

js实现坦克大战第一关。控制坦克上下左右移动。函数的onkeydown问题。,第1张

测了一下,直接调dosomething(event)是没问题的,而且move(event)不可能调到,应该是hero.move(event)

(突然发现你这个是WASD的keyCode)

下面是代码

<body onkeydown=dosomething(event)>

<script>

function MyTank(x,y,direct){

  this.x = x

  this.move = function move(event){

    console.log(event.keyCode+'被按下')

  }

}

var hero =new MyTank(300, 300, 0)

function dosomething(event) {

  if(event.keyCode==38|| event.keyCode==40 ||event.keyCode==37|| event.keyCode==39) {

    hero.move(event)

  }

}

</script>

//则所有子弹共享一个定时器.

var timer=window.setInterval("heroBullets["+(heroBullets.length-1)+"].run()",50)

heroBullets这个你可以理解为一个数组,[]中是下标

不知道你明白不,写个简单例子给你看看吧:

var heroBullets = {

0:{

run: function(){

alert(this.timer)

},

timer: 10

},

1:{

run: function(){

alert(1)

},

timer: 20

}

}

heroBullets[0].timer = 30//这个是代表设置参数timer

heroBullets[0].run()//这个是代表调用其中的函数run