Hilfe

CameraPick

B3D

Aufruf

entity% = CameraPick (kamera%, x#, y#)

Parameter

kamera% Identität einer Kamera
x# X-Koordinate auf der 2D-Ebene
y# Y-Koordinate auf der 2D-Ebene


Rückgabewert

Identität des Objekts. Wurde kein Objekt gefunden, so wird nur eine Null zurückgeliefert.


Beschreibung

Die Funktion CameraPick ermittelt die Identität eines 3D-Objekts an der Koordinate x#,y#. Das Programm berechnet automatisch die 3D-Koordinate und sucht das nächste Objekt.

Die Werte x# und y# sind Abstände zum Kamerarand. Diese müssen von Mauskoordinaten abgezogen werden, wenn Kamera nicht ganz oben/links anfängt. Beispiel:
obj=CameraPick(cam,MouseX()-100,MouseY()-100)



Ein Entity muss mit EntityPickMode auf einen größeren Wert als Null gesetzt werden, damit diese Funktion korrekt arbeitet.


Beispiel

Standardbeispiel:

Graphics3D 640, 480, 0, 2
SetBuffer BackBuffer()
camera = CreateCamera()
light = CreateLight()
cube = CreateCube()
PositionEntity camera, 0, 0, 0
RotateEntity light, 90, 0, 0
PositionEntity cube, 0, 0, 10
EntityPickMode cube, 2

While Not KeyDown(1)
   TurnEntity cube, .5, 1, 2
   mx = MouseX()
   my = MouseY()
   entity = CameraPick(camera, mx, my)
   If entity = 0 Then EntityColor cube, 255, 255, 255
   If entity<>0 Then EntityColor cube, 0, 255, 0
   RenderWorld
   If entity = 0 Then Text 0, 0, "Nicht ausgewählt"
   If entity<>0 Then Text 0, 0, "Ausgewählt:" + entity
   Oval mx - 5, my - 5, 10, 10, 1
   Flip
Wend
End


Siehe auch

EntityPick, EntityPickMode, LinePick, PickedEntity, PickedNX, PickedNY, PickedNZ, PickedSurface, PickedTime, PickedTriangle, PickedX, PickedY, PickedZ

Übersicht 3D Grafik Pick