在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ 想要移動一整列,現(xiàn)在碰撞時是一個一個彈回來,該如何修改代碼?

想要移動一整列,現(xiàn)在碰撞時是一個一個彈回來,該如何修改代碼?

this.enemys = [];

       this.enemy = function(enemy_length = 10)
      {   

        var enemyImage = new Image;
        enemyImage.src = './img/enemy.png';
        var that = this;   
        return new Promise(function(resolve, reject)
        {
          enemyImage.onload = function()
          {
            for(var i = 0; i < enemy_length; i++)
            {
              var enemy =
              {
                x:30 + i * 50,
                y:50,
                size:50,
                speedX:2,
                
                image:enemyImage
              };
              that.enemys.push(enemy);
            }
            console.log(that.enemys);
            resolve(that.enemys);
          }
        });
      }
      this.draw = function(){
          this.clears();
           for(let i=0;i<this.enemys.length;i++){
                context.drawImage(this.enemys[i].image, this.enemys[i].x, this.enemys[i].y, this.enemys[i].size, this.enemys[i].size); 
             };
      }
      this.clears=function(){
        context.clearRect(30, 0, canvas.width, canvas.height);
      }
this.move=function(){
            this.clears();
            this.draw();
            for(let i=0;i<this.enemys.length;i++)
              {
                var enemy = this.enemys[i];
                enemy.x += enemy.speedX;
                
                 if(enemy.x+enemy.speed > canvas.width 
                    || enemy.x + enemy.speedX < 0 
                    || enemy.x + enemy.speedX > canvas.height
                    || enemy.x + enemy.speedX < 0
                  )
                {
                  enemy.speedX *= -1;
                }
               
              }
        requestAnimationFrame(this.move.bind(this));
       }

clipboard.png

clipboard.png

回答
編輯回答
壞脾滊
  this.move = function () {
            this.clears();
            this.draw();
            var first = this.enemys[0];
            var end = this.enemys[this.enemys.length - 1];
            var speedX = 1;
            if (this.enemys.length > 0 && (end.x + 50 + first.speedX > canvas.width
                || first.x + first.speedX < 0)) {
                speedX *= -1;
            }
            for (let i = 0, leg = this.enemys.length; i < leg; i++) {
                var enemy = this.enemys[i];
                enemy.x += enemy.speedX;
                enemy.speedX *= speedX;
            }
            requestAnimationFrame(this.move.bind(this));
        }
2018年4月5日 08:35