Me again :)
How would I select an entity when the mouse is over it? I assume I do a linepick but the mousex/mousey isn't the same as the 3d x/y. A sort of reverse cameraproject, that converted 2d coordinates into 3d ones, would be nice if it exists.
Thanks is advance
quite simple: you use camerapick and it returns the mesh/whatever id you needed.
then you could loop through your entities and check whether that pickedId matches with one of your entities. after that: you can use other entity information (like name) to display stuff you need.
Here ya go...
Graphics3D 640, 480, 0, 2
cam = CreateCamera ()
cube = CreateCube ()
ball = CreateSphere ()
MoveEntity cube, -5, 0, 10
MoveEntity ball, 5, 0, 10
EntityPickMode cube, 3
EntityPickMode ball, 1
Repeat
entity = CameraPick (cam, MouseX (), MouseY ())
Select entity
Case cube
picked$ = "Cube!"
Case ball
picked$ = "Ball!"
Default
picked$ = "Nothing picked!"
End Select
UpdateWorld
RenderWorld
Text 20, 20, picked$
Flip
Until KeyHit (1)
End
Thanks :)
I guess I could have figured a reverse cameraproject would be camerapick.
Sighs...
How do I select a surface? There was no help file for Pickedsurface() so I tried:
newentity =CameraPick (camera,MouseX(),MouseY())
surface = PickedSurface()
But that always returns 0.
Sorry for being so slow, God knows what I'd do without this forum.
You need to set the EntityPickMode to 2, otherwise you won't get any PickedSurface. Be aware that if you pick an entity that does not have any surfaces, ie. a pivot or terrain, the old PickedSurface will not be cleared...
Hope this helps,
Fredborg
Hmm it's still not working. Does it matter that I'm manually creating surfaces from vertices?