2017-11-18 19 views
1

Ich benutze Javascript, p5.js und Daniel Shiffmans tutorial, um eine visuelle Darstellung eines A * Suchalgorithmus zu erstellen.Wie man auf ein Zellobjekt klickt?

Ein Bild von einem Beispiel Gitter sieht wie folgt aus: example grid

Ist es möglich, auf jede Zelle des Gitters klicken, um es Attribute auszudrucken? Basierend auf Daniel Shiffmans anderen Tutorial auf how to click on objects, verstehe ich, dass ich 2 Funktionen erstellen muss, die jeweils aktivieren und ausführen. Ich verstehe, wie man das mit einem Kreis macht, weil ein Kreis einen Radius hat.

Aber ich verstehe nicht, wie man das mit einer Zelle macht, weil ich nur ihre Koordinaten habe. Ich kann nicht sehen, wie man Koordinaten als Maß verwendet, um Länge zu berechnen.

Ich würde jede Anleitung zu meinem Denken schätzen. Vielen Dank im Voraus.

+0

Siehe die 'collidePointRect()' Methode in der 'p5.collide2D ' Bibliothek (https://github.com/bmoren/p5.collide2D#collidepointrect). Sie sollten die Mauskoordinaten zusammen mit der Position und den Abmessungen übergeben, die Sie für die Zelle verwenden. –

Antwort

1

Ich schrieb ein Tutorial zur Kollisionserkennung verfügbar here. Das ist für die normale Verarbeitung, aber in P5.js ist alles gleich. Sie suchen nach einer Kollision mit einem Rechteckpunkt.

Grundsätzlich müssen Sie überprüfen, ob der Punkt zwischen den linken und rechten Kanten des Rechtecks ​​und zwischen den oberen und unteren Kanten des Rechtecks ​​liegt. Wenn beide wahr sind, befindet sich der Punkt innerhalb des Rechtecks.

Ich empfehle breaking your problem down into smaller steps und diese Schritte nacheinander durchzuführen. Versuchen Sie beispielsweise, es mit einem einzelnen hartcodierten Rechteck und Punkt zu arbeiten, bevor Sie es mit mehreren Zellen oder mit Benutzereingaben versuchen.

+0

Vielen Dank für Ihre Antwort. Es funktioniert, aber nicht mit 100% Genauigkeit. Die Quadrate, auf die ich klicken möchte, sind sehr klein. Denkst du, dass die Kleinheit etwas mit Ungenauigkeit zu tun hat? Bitte überprüfen Sie das Bild, das ich als Referenz hochgeladen habe. – elbertkim

+0

@elbertkim Nein, die Größe der Quadrate sollte nicht wichtig sein, solange Sie die Maus in ihnen haben können. Wenn Sie eine Nachfolgefrage haben, veröffentlichen Sie bitte eine aktualisierte [mcve] in einem neuen Fragepost. Viel Glück. –

Verwandte Themen