Code archives/3D Graphics - Effects/Simpler TForm 3D Radar
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
As per 'Elite' radar - thanks to Klaas, skidracer & Stevie G | |||||
Graphics3D 800,600,32,0 SetBuffer BackBuffer() lighting=CreateLight(2) PositionEntity lighting,-20,20,-30 ship=CreateCone(3,1) ScaleMesh ship,2,5,1 RotateMesh ship,-90,180,0 red=CreateCube() blue=CreateCube() green=CreateCube() EntityColor red,255,0,0 EntityColor green,0,255,0 EntityColor blue,0,0,255 cam=CreateCamera() MoveEntity cam,0,0,-20 PointEntity cam,ship PositionEntity red,Rand(-10,10),Rand(-10,10),Rand(-10,10) PositionEntity blue,Rand(-10,10),Rand(-10,10),Rand(-10,10) PositionEntity green,Rand(-10,10),Rand(-10,10),Rand(-10,10) While Not KeyDown(1) If KeyDown(208) Then TurnEntity ship,5,0,0 If KeyDown(200) Then TurnEntity ship,-5,0,0 If KeyDown(203) Then TurnEntity ship,0,5,0 If KeyDown(205) Then TurnEntity ship,0,-5,0 If MouseDown(1) MoveEntity ship,0,0,1 UpdateWorld RenderWorld ;Radar Color 255,255,255 Rect 400,500,3,3,0 ;Red Dot TFormPoint (EntityX(red),EntityY(red),EntityZ(red),0,ship) red_relativeX=(0-TFormedX()) red_relativey=TFormedY() red_relativez=TFormedZ() Color 255,0,0 If red_relativeY>0 Then Rect 400-red_relativeX,500-red_relativeZ,1,red_relativeY,1 If red_relativeY<0 Then Rect 400-red_relativeX,500-red_relativeZ+Abs(red_relativeY),1,Abs(red_relativeY),1 ;Green Dot TFormPoint (EntityX(green),EntityY(green),EntityZ(green),0,ship) green_relativeX=(0-TFormedX()) green_relativey=TFormedY() green_relativez=TFormedZ() Color 0,255,0 If green_relativeY>0 Then Rect 400-green_relativeX,500-green_relativeZ,1,green_relativeY,1 If green_relativeY<0 Then Rect 400-green_relativeX,500-green_relativeZ+Abs(green_relativeY),1,Abs(green_relativeY),1 ;Blue Dot TFormPoint (EntityX(blue),EntityY(blue),EntityZ(blue),0,ship) blue_relativeX=(0-TFormedX()) blue_relativey=TFormedY() blue_relativez=TFormedZ() Color 0,0,255 If blue_relativeY>0 Then Rect 400-blue_relativeX,500-blue_relativeZ,1,blue_relativeY+1,1 If blue_relativeY<0 Then Rect 400-blue_relativeX,500-blue_relativeZ+Abs(blue_relativeY),1,Abs(blue_relativeY),1 Flip Wend End |
Comments
| ||
I was racking my pitiful brain trying to come up with a way to do this! |
Code Archives Forum