小编swh*_*zle的帖子

太空入侵者不能齐声移动(Javascript)

首先,我是编程新手,Stackoverflow让我很害怕,但我试图包含所有相关代码并很好地解释我的问题.我已经看到很多其他关于试图制造太空入侵者克隆人的帖子,甚至还有特别是"入侵者"并没有齐声移动.然而,这些帖子并没有解决我的问题,如果有人能指出我可能出错的地方,我将非常感激.

原型可在此处获得.完整代码在这里

代码包含我试图愚弄代码:)的评论.我正在使用"processing.js"库,但这不应该妨碍任何人理解我的代码.

我的具体问题是侵入者在X轴上移动时的行为不一致,并且它们并不总是同时移动.起初似乎一切都很好(减去第一个入侵者有点滞后),但随着时间的推移,行为变得不稳定,他们开始变得不合时宜.

我实际上已经理解了我的逻辑中的缺陷,但我不知道如何解决它.但是,在我解释之前..

我将空间入侵者加载到二维数组中,如下所示:

var enemies = [];
    for(var i = 0; i < ROWS; i++) {
        var newRow = [];
        for(var y = 0; y < COLS; y++){
            newRow.push(new Enemy(y * 40 + 40, i * 30));
        }
        enemies.push(newRow);
    }
Run Code Online (Sandbox Code Playgroud)

我的敌人是:

   var Enemy = function(x,y) {
        this.height = 30;
        this.width = 30;
        this.x = x;
        this.y = y;
        this.speed = 15;
    };

    Enemy.prototype.draw = function() {
         image(invader, this.x, this.y, this.width, this.height);
    };
Run Code Online (Sandbox Code Playgroud)

它们在"绘制"(基本上是processing.js的"更新"版本)循环中绘制和移动.像这样:

for(var …
Run Code Online (Sandbox Code Playgroud)

javascript arrays multidimensional-array

5
推荐指数
1
解决办法
282
查看次数