PickedZ# ( )
Parameters
| None. |
Description
|
Returns the world z coordinate of the point hit by the most recent pick. A pick command - CameraPick, EntityPick or LinePick - fires a ray into the world, and PickedX, PickedY and PickedZ give the exact spot where that ray struck something pickable. Typical uses: dropping a waypoint where the player clicked, or spawning an impact effect exactly where a shot landed. Only read these values after a successful pick: if the last pick missed (returned 0), the Picked commands keep whatever an earlier successful pick left in them. Remember too that only entities given a pick mode with EntityPickMode can be hit at all. See also: PickedX, PickedY, PickedNZ, PickedEntity, LinePick. |
Example
; PickedZ Example ; --------------- Graphics3D 640,480,0,2 SetBuffer BackBuffer() camera=CreateCamera() PositionEntity camera,0,3,-8 light=CreateLight() RotateEntity light,45,45,0 ; Shooting-gallery floor - EntityPickMode 2 makes it pickable by its polygons floor=CreatePlane() EntityColor floor,70,110,70 EntityPickMode floor,2 ; Three targets, all pickable by their polygons cube=CreateCube() PositionEntity cube,-3,1,4 EntityPickMode cube,2 ball=CreateSphere() PositionEntity ball,0,1.4,4 EntityPickMode ball,2 drum=CreateCylinder() PositionEntity drum,3,1,4 EntityPickMode drum,2 ; Small marker sphere shows the exact pick point marker=CreateSphere() ScaleEntity marker,0.15,0.15,0.15 EntityColor marker,255,255,0 HideEntity marker bob#=0 While Not KeyDown(1) ; Repaint the targets; the picked one is flashed white below EntityColor cube,200,180,60 EntityColor ball,60,120,220 EntityColor drum,220,80,60 ; The ball bobs gently so the gallery feels alive bob=bob+2 PositionEntity ball,0,1.4+0.4*Sin(bob),4 ; Click to shoot - CameraPick casts a pick ray through the mouse cursor If MouseHit(1) Then CameraPick(camera,MouseX(),MouseY()) ; Highlight the last picked entity and park the marker on the pick point hit=PickedEntity() If hit<>0 If hit<>floor Then EntityColor hit,255,255,255 ShowEntity marker PositionEntity marker,PickedX(),PickedY(),PickedZ() Else HideEntity marker EndIf ; Arrow keys move the camera If KeyDown(200) Then MoveEntity camera,0,0,0.1 If KeyDown(208) Then MoveEntity camera,0,0,-0.1 If KeyDown(203) Then TurnEntity camera,0,1,0 If KeyDown(205) Then TurnEntity camera,0,-1,0 RenderWorld ; Crosshair at the mouse position Rect MouseX()-6,MouseY(),13,1 Rect MouseX(),MouseY()-6,1,13 Text 0,0,"Click a target or the floor to pick it Arrow keys: move camera Esc: exit" ; PickedZ is the world z coordinate of the pick point (the yellow marker) Text 0,20,"PickedZ: "+PickedZ() Text 0,40,"(PickedX: "+PickedX()+" PickedY: "+PickedY()+")" Text 0,60,"Pick the floor near the camera and far away to sweep PickedZ" Flip Wend End
Index