Code archives/Algorithms/Movemouse

This code has been declared by its author to be Public Domain code.

Download source code

Movemouse by Nate the Great
(Posted 18 years ago)
I have changed it to a fun mouse program I have made that demonstrates how to effectively use the movemouse command.
Graphics 400,400,0,2
AppTitle "Mousefun  :)"

Global mx# = 200
Global my# = 200
Global mvx# = 0
Global mvy# = 0
Global red = 255
Global green = 255
Global blue = 0


Type sparks
	Field x#,y#,dx#,dy#,lif,r,g,b
End Type


SetBuffer BackBuffer()

While Not KeyDown(1)
Cls

mvx# = mvx# + (MouseXSpeed()/7)
mvy# = mvy# + (MouseYSpeed()/7)

mvy# = mvy# + .1


If my# > 400 Then
	mvy# = -mvy#*.7
	my# = 400
EndIf

If my# < 0 Then
	mvy# = -mvy#*.9
	my# = 0
EndIf
;
If mx# > 400 Then
	mvx# = -mvx#*.9
	mx# = 400
EndIf

If my# > 397 Then
	mvx# = mvx#*.7
EndIf

;
If mx# < 0 Then
	mvx# = -mvx#*.9
	mx# = 0
EndIf
;
;If mvy# < 2 Then mvy# = 0
;
;
mx# = mx# + mvx#
my# = my# + mvy#

MoveMouse mx,my
updatesparks()


Flip

Wend

End



Function updatesparks()

For a = 1 To 4
	s.sparks = New sparks
	s\x# = MouseX()
	s\y# = MouseY()
	s\dx# = Rnd#(-.3,.3)
	s\dy# = Rnd#(-.3,.3)
	s\r = red
	s\g = green
	s\b = blue
	s\lif = 255
Next

For s.sparks = Each sparks
	Color s\r*(s\lif/255.0),s\g*(s\lif/255.0),s\b*(s\lif/255.0)
	Plot s\x#,s\y#
	s\x# = s\x# + s\dx#
	s\y# = s\y# + s\dy#
	
	s\lif = s\lif - 2
	If s\lif <= -1 Then Delete s.sparks
Next

End Function