Ich habe derzeit zwei Objekte bulletList und enemyList jeweils mit Eigenschaften ihrer X- und Y-Position auf Leinwand. Was ich programmieren will, ist herauszufinden, auf welcher Seite die Kugel die Gegner trifft. Die if-Anweisung läuft nach der testCollision FunktionFinden Sie, welche Seite des Rechtecks kollidiert nach testCollision Funktion
Bisher habe ich diese erstellt haben:
if(bulletLocationY < enemyLocationY)
console.log("Above");
if(bulletLocationY > enemyLocationY)
console.log("Below");
if(bulletLocationX < enemyLocationX)
console.log("Left");
if(bulletLocationX > enemyLocationX)
console.log("Right");
Aktuelles Beispiel des Spiels: https://jsfiddle.net/pktxmc3y/
effektiv, was ich tun möchte, ist, wenn die Kugel trifft die roter Feind auf der linken Seite, der Feind bewegt sich nach rechts und umgekehrt. Wenn ich von oben auf den Feind treffe, bewegt er sich nach unten und umgekehrt. Das Bit, das ich als schwierig empfand, ist die Identifizierung der Seite, wo die Kugel das Rechteck getroffen hat.
EDIT: Nur um die richtige Antwort auf füge ich auch Erfolg mit gehabt haben:
if(bulletLocationY - (bulletHeight/2) < enemyLocationY - (enemyHeight/2))
console.log("Above");
if(bulletLocationY + (bulletHeight/2) > enemyLocationY + (enemyHeight/2))
console.log("Below");
if(bulletLocationX - (bulletWidth/2)< enemyLocationX - (enemyWidth/2))
console.log("Left");
if(bulletLocationX + (bulletWidth/2)> enemyLocationX + (enemyWidth/2))
console.log("Right");
Gegeben 2 Rechtecke, [diese vorherige Q & A] (http://stackoverflow.com/questions/34607871/how-to-create-obstacles-in-canvas/34624007#34624007) zeigt, wie der anfängliche Kollisionspunkt (falls vorhanden) der 2 Rechtecke. – markE