? ? function Game(map) {? ? ? this.food = new Food();//食物對象? ? ? this.snake = new Snake();//小蛇對象? ? ? this.map = map;//地圖? ? ? that = this;//保存當前的實例對象到that變量中-----------------此時that就是this? ? }? ? //初始化游戲-----可以設置小蛇和食物顯示出來? ? Game.prototype.init = function () {? ? ? //初始化游戲? ? ? //食物初始化? ? ? this.food.init(this.map);? ? ? //小蛇初始化? ? ? this.snake.init(this.map);? ? ? //調用自動移動小蛇的方法========================||調用了小蛇自動移動的方法? ? ? this.runSnake(this.food, this.map);? ? ? //調用按鍵的方法? ? ? this.bindKey();//========================================? ? };? ? //添加原型方法---設置小蛇可以自動的跑起來? ? Game.prototype.runSnake = function (food, map) {//此時 food如何去到了this.snake.move(food, map);為什么不寫成var timeId = setInterval(function (food) {? ? ? //自動的去移動? ? ? var timeId = setInterval(function () {? ? ? ? //此時的this是window? ? ? ? //移動小蛇? ? ? ? this.snake.move(food, map);? ? ? ? this.snake.init(map);? ? ? ? //初始化小蛇? ? ? ? //橫坐標的最大值? ? ? ? var maxX = map.offsetWidth / this.snake.width;? ? ? ? //縱坐標的最大值? ? ? ? var maxY = map.offsetHeight / this.snake.height;? ? ? ? //小蛇的頭的坐標? ? ? ? var headX = this.snake.body[0].x;? ? ? ? var headY = this.snake.body[0].y;? ? ? ? //橫坐標? ? ? ??? ? ? ? if (headX < 0 || headX >= maxX) {? ? ? ? ? //撞墻了,停止定時器? ? ? ? ? clearInterval(timeId);? ? ? ? ? alert("游戲結束");? ? ? ? }? ? ? ? //縱坐標? ? ? ? if (headY < 0 || headY >= maxY) {? ? ? ? ? //撞墻了,停止定時器? ? ? ? ? clearInterval(timeId);? ? ? ? ? alert("游戲結束");? ? ? ? }? ? ? }.bind(that), 150);? ? };
傳參問題 function之間 food
慕九州8427191
2018-10-24 20:52:12