Code archives/3D Graphics - Misc/Draw3DMouse
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
Draw a 3d quad as a pointer. Works with any zoom value, as it uses a second camera. | |||||
HidePointer Graphics3D 800,600,16,2 Init3DMouse("Pointer.png") Repeat Cls Draw3DMouse(MouseX(),MouseY()) RenderWorld Flip Until KeyDown(1) End Global mousecamera3d Global mousepivot3d Global mouseentity3d,mousetexture3d Function Init3DMouse(file$,flags=1+2+16+32,order=-99,x#=10000,y#=10000,z#=10000) Clear3DMouse() mousecamera3d=CreateCamera() PositionEntity mousecamera3d,x,y,z CameraClsMode mousecamera3d,0,1 CameraRange mousecamera3d,1,2 EntityOrder mousecamera3d,order mousepivot3d=CreatePivot(mousecamera3d) PositionEntity mousepivot3d,-1,Float(GraphicsHeight())/GraphicsWidth(),1 scale#=2.0/GraphicsWidth() ScaleEntity mousepivot3d,scale,-scale,1 mousetexture3d=LoadTexture(file$,flags) mouseentity3d=CreateMesh(mousepivot3d) EntityFX mouseentity3d,1+8 surf=CreateSurface(mouseentity3d) w#=Float(TextureWidth(mousetexture3d)) h#=Float(TextureHeight(mousetexture3d)) v=AddVertex(surf,0,0,0 ,0,0) AddVertex(surf,w,0,0 ,1,0) AddVertex(surf,w,h,0 ,1,1) AddVertex(surf,0,h,0 ,0,1) AddTriangle(surf,v,v+1,v+2) AddTriangle(surf,v,v+2,v+3) EntityTexture mouseentity3d,mousetexture3d End Function Function Clear3DMouse() If mousetexture3d<>0 Then FreeTexture mousetexture3d: mousetexture3d=0 If mouseentity3d<>0 Then FreeEntity mouseentity3d: mouseentity3d=0 If mousepivot3d<>0 Then FreeEntity mousepivot3d: mousepivot3d=0 If mousecamera3d<>0 Then FreeEntity mousecamera3d: mousecamera3d=0 End Function Function Draw3DMouse(x,y) PositionEntity mouseentity3d,x,y,0 End Function |
Comments
None.
Code Archives Forum