传参问题 function之间 food

    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);

    };


慕九州8427191
浏览 840回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript