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! |