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); };
添加回答
举报
0/150
提交
取消