Diese kleine Welt sich schneid enthält eine Person (blaues Rechteck), und einen Baum (großes grünes Rechteck). Die Person kann durch Drücken der Tasten nach oben, unten, links, rechts auf der Tastatur gesteuert werden. Das blaue Rechteck bewegt sich nur, wenn die Tasten gedrückt werden. Das blaue Rechteck darf nicht aus der Karte verschwinden (d. H. Darf nicht aus dem grauen Bereich herauskommen) und darf das grüne Rechteck nicht überlappen.
Ich bin der Methode bewusst von den blauen Rechteck zu verhindern, dass die Grauzone aussteigen:
if (blueRect.rightEdge >= (canvas.width - 1)) {
// Don't allow going further to the right
// But allow going up, down, and to the left
}
// Check the same thing for the other sides of the grey area
Was ich nicht sicher bin, ist, wie die beiden Rechtecke aus sich kreuz zu verhindern.
In der obigen Abbildung, wie kann ich "deaktivieren" nach rechts gehen (um eine Kreuzung zu verhindern)? Ich wäre immer noch gerne in der Lage, nach oben, nach unten und nach links zu gehen.
über Kollisionserkennung erfahren? Ich bin mir sicher, dass es genug Tutorials und Ressourcen gibt, die Sie mit der Suchmaschine Ihrer Wahl finden können. – UnholySheep
@UnholySheep Das Problem ist, dass die meisten Tutorials zeigen, wie man Kreuzungen erkennt. Ich brauche keine Überschneidungen zu erkennen. Ich muss Kreuzungen verhindern. – Flux
Das nennt man "Kollisionsauflösung" - das ist der nächste Schritt nach dem Erkennen einer Kollision. Wenn Sie eine Überschneidung verhindern möchten, müssen Sie zuerst feststellen, dass eine passiert, wenn Sie Ihr Objekt verschieben. – UnholySheep