modify mouse pointer?

Blitz3D Forums/Blitz3D Programming/modify mouse pointer?

i have a routine to click (left mouse click) an specific point and an image moves to this new position.

now what i need is to assign an animated image to the traditional mouse image (static white arrow).

in short, i want to replace the traditional static white arrow of the mouse for a new animated pointer.

is this possible?

Typed straight into replybox, so untested:
Graphics 800,600
HidePointer
SetBuffer Backbuffer()
Global imgMouse = LoadAnimImage("mouseimage.png",16,16,0,4)
Global mouseFrame = 0

While Not KeyDown(1)
  Cls
  DrawMouse()
  Flip
Wend

Function DrawMouse()
  DrawImage imgMouse,MouseX(),MouseY(),mouseFrame
  mouseFrame = mouseFrame + 1
  if mouseFrame > 3 Then MouseFrame = 0
End Function


i am sorry for this ne stupid question, but i tried to use it with an image called "mouseimage.png" wich is 16x48 (3 frames horizontaly) but it says "Image frame out of range" :(

do you know how to make it work? or am i doing something wrong?

thanks for your patience :)

Just change to this:

Global imgMouse = LoadImage("mouseimage.png")

Edited: for non animated, and what PCD says for animated

LoadAnimImage("mouseimage.png",16,16,0,3)

That should work, if it doesn't add a few more pixels to the end of the image strip.

you might have also needed to change the DrawMouse() function to say

If mouseFrame > 2 Then mouseFrame = 0

so that it doesn't go past frame 2 (0,1,2 = 3 frames)

beat me to it tainted :P

excellent! it worked like a charm!

this is the final code:

Graphics 800,600
HidePointer
SetBuffer BackBuffer()
Global imgMouse = LoadAnimImage("mouseimage.png",16,16,0,3)

Global mouseFrame = 0

While Not KeyDown(1)
Cls
DrawMouse()
Flip
Wend

Function DrawMouse()
DrawImage imgMouse,MouseX(),MouseY(),mouseFrame
mouseFrame = mouseFrame + 1
If mouseFrame > 2 Then MouseFrame = 0

End Function

thanks a lot!

B!