ここでは、オブジェクト開発者初心者です。私はここで説明するように、落下キューブのアニメーションをしようとします:Falling animation to fill a webpageオブジェクトのリストにメソッドを追加します。
私はいくつかのアルゴリズムの問題があります。私はテトリスゲームのモデルに従っているが、同時に複数のピクセルが落ちるようにする。だから私はピクセルを移動するいくつかのメソッドを持つコンストラクタを持っています。
しかし、今、私は次のようにオブジェクトの配列を作成するために私のコンストラクタを使用します。
var a_player = [];
function addPlayer(pos){
var player = new Player(pos);
a_player.push(player);
}
addPlayer({x: 3, y: 3});
addPlayer({x: 0, y: 0});
そして、私が衝突()メソッドのようないくつかのパブリックメソッドを使用します:
function collide(arena, player) {
const [m, o] = [player.matrix, player.pos];
for (let y = 0; y < m.length; ++y) {
for (let x = 0; x < m[y].length; ++x) {
if (m[y][x] !== 00 &&
(arena[y + o.y] &&
arena[y + o.y][x + o.x]) !== 0) {
return true;
}
}
}
return false;
}
しかし、私ドンそれを行う最善の方法が何であるかを知っているわけではありません。私は
for (i = 0; i < a_player.length; i++){
console.log(a_player[i].pos);
}
のような「のために」を使用することができますが、私はすべての方法でそれを適用する必要があり、または私は私の配列で、私が持っているプレイヤーの数だけ、私の方法を複製することができます(ただし、両端に、私はもっと欲しいです20kプレイヤーよりも...)。あなたはそのような問題に私を助けることができますか?
20kの選手...?このNode.jsなのかな? –
あなたは 'Array.prototype.forEach'を使うことができます:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach – Kontsnor
キャンバスだけを使うのは悪い考えですか? JSはそのことをやりますか? – SandaleRaclette