Allgemeinen Kollisionen in Leinwand-Spiele wie ich etwas zu erkennen:Wie Kollisionen zwischen sich schnell bewegenden Objekten erfassen
function collides(a, b) {
return a.x < b.x + b.width &&
a.x + a.width > b.x &&
a.y < b.y + b.height &&
a.y + a.height > b.y;
}
Aber das erkennt nur Kollisionen, wenn die Objekte zu der Zeit wird der Rahmen verarbeitet werden, zu berühren. Wenn ich ein Sprite habe, dessen Geschwindigkeit (in Pixeln/Rahmen) größer ist als die Breite eines Hindernisses auf seinem Weg, wird es durch das Hindernis gehen, ohne dass die Kollision erkannt wird.
Wie würde ich prüfen, was zwischen dem Sprite und seinem Ziel liegt?
Prüfen Sie in jedem Frame, ob ein Vektor die Länge Ihrer Sprite-Geschwindigkeit mit dem Objekt schneidet. –
Sie könnten in Betracht ziehen, dies auf [GameDev.SE] zu fragen. – zzzzBov
Auch verwandt: http://stackoverflow.com/questions/7364884/problem-mit-kollision-detektion-von-fast-moving-ball-mit-racket-controlled – JayC