2016-10-10 3 views
-1

Ich zeichnete viele Punkte in meinem Programm mit webgl. Jetzt möchte ich einen beliebigen Punkt auswählen und diesen Punkt um eine neue Position verschieben. Der Fall ist, ich weiß nicht, wie man Punkt auswählt. Soll ich also Actionlistener zu jedem Punkt hinzufügen?Beweglicher Punkt mit Maus

+0

Verwenden Sie ein Framework oder eine Engine? Kurz gesagt, Sie möchten einen Ereignis-Listener (Klick) nur im Canvas hinzufügen. Dann möchten Sie Raycast (einfach mit 2D, härter mit 3D) verwenden und verarbeiten, welchen Punkt Sie ausgewählt haben. Danach können Sie es verschieben. Es gibt keine Aktion Listener in Webgl. Sie müssen Ihr eigenes Muster codieren oder Engine verwenden. –

+0

Ich schreibe meinen Code in erhabenen Test und ich soll nur Javascript und Webgl verwenden. – dummy

Antwort

0

WebGL is a rasterization library. Es hat kein Konzept von beweglichen, anklickbaren Positionen oder Punkten. Es zeichnet nur Pixel, wo Sie es fragen.

Wenn Sie Dinge verschieben möchten, die Ihnen überlassen sind, um Ihre eigenen Daten zu erstellen, verwenden Sie diese Daten, um zu entscheiden, ob die Maus auf etwas geklickt wurde, aktualisieren Sie die Daten, um zu reflektieren, wie die Maus sie änderte, und verwenden Sie schließlich WebGL -Render etwas basierend auf den Daten.

Beachten Sie, dass keiner dieser Schritte, außer dem letzten, WebGL involviert. WebGL hat kein Konzept eines Actionlisteners, da WebGL keine Aktionen hat, die Sie hören könnten. It just draws pixels based on what you ask it to do. Das ist es. Alles andere liegt bei Ihnen und außerhalb von WebGL.

verwenden Sie zu dieser Bibliothek wären wäre, eine Bibliothek wie three.js oder X3D oder Unity3d aber in diesem Fall Ihre Frage über die spezifische Bibliothek als alle Eingabe/Maus/Objektposition Fragen spezifische Vielleicht (weil wieder, WebGL zeichnet nur Pixel)

Verwandte Themen