あなたが何をしているのかを理解するまでにはしばらく時間がかかりました。
しかし、プレーヤーの静的な幅と高さをとった場合、あなたの問題を解決するはずです。
constructor(){
this.coyote = new Entity();
this.coyote.pos.set(0,222);
this.coyote.vel.set(0,0);
this.coyote.acc.set(0,0);
this.coyote.width = 78;
this.coyote.height = 128;
this.isGrounded = true;
this.state = States.RUNNING;
}
intersects(other) {
let div = document.getElementById("player");
let left = this.coyote.pos.x;
let right = this.coyote.width;
let top = this.coyote.pos.y;
let bottom = this.coyote.height;
let oLeft = other.left;
let oRight = other.right;
let oTop = other.top;
let oBottom = other.bottom;
return !(left > oRight || right < oLeft || top > oBottom || bottom < oTop);
}
これはうまくいくはずです。
ヒント:
1.スターターとしてキャンバスを使用します。
2.最も重要なのは読み取り可能なコードです。
3.コメントと要約
はい。交差点を計算します。そのサイズのキャンバスを使用して、両方の要素から特定の領域をレンダリングし、2つの要素のそれぞれについて生のピクセルデータをフェッチします。今度は、両方の配列に値(0以外)が含まれている点について、ピクセル(4バイト)単位でデータを検索してください。 – Thomas