为了账号安全,请及时绑定邮箱和手机立即绑定

传参问题 function之间 food

传参问题 function之间 food

慕九州8427191 2018-10-24 20:52:12
    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);    };
查看完整描述

1 回答

  • 1 回答
  • 1 关注
  • 839 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信