There are ways to show a mouse pointer in Blitz3d which are accurate.
An easy way which may result in some slowdown is to use 2d commands:
MyCursor=loadimage("cursor.bmp")
and use DrawImage MyCursor,Mousex(),mousey(), and then use CameraPick with the mouse coordinates.
If you have the tip of the arrow in the centre of the image then run this line MidHandle MyCursor, if the tip of the arrow is in the
upper left corner then it should not be a problem.
If you wish to use a sprite in 3d then it is slightly more complicated to display it correctly.
There is code in the code archives for using a 3d mouse cursor with any zoom value which uses a second camera.
If you use a sprite then you should set the tip of the arrow on the mouse picture to the centre of the sprite.
Assuming you have a sprite with entity handle "Mouse3d" then do this:
then in your main loop:
An easy way which may result in some slowdown is to use 2d commands:
MyCursor=loadimage("cursor.bmp")
and use DrawImage MyCursor,Mousex(),mousey(), and then use CameraPick with the mouse coordinates.
If you have the tip of the arrow in the centre of the image then run this line MidHandle MyCursor, if the tip of the arrow is in the
upper left corner then it should not be a problem.
If you wish to use a sprite in 3d then it is slightly more complicated to display it correctly.
There is code in the code archives for using a 3d mouse cursor with any zoom value which uses a second camera.
If you use a sprite then you should set the tip of the arrow on the mouse picture to the centre of the sprite.
Assuming you have a sprite with entity handle "Mouse3d" then do this:
EntityParent Mouse3d,Camera MoveEntity Mouse3d,0,0,ScrWidth*0.5 EntityOrder mouse3d,"some negative number" MoveMouse ScrWidth/2,ScrHeight/2
then in your main loop:
MoveEntity Mouse3d,MouseXSpeed(),-MouseYSpeed(),0