Login or Signup

Code archives/Miscellaneous/MouseXSpeed() / MouseYSpeed()

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

Download source code

MouseXSpeed() / MouseYSpeed() by Chroma(Posted 1+ years ago)
I miss simple pleasures like MouseXSpeed so I knocked this up. I'll be doing a few more things like this to make my life easier in BMax.

EDIT: Just realized it's all integers so I took out all the Floats.
'MouseSpeed Setup
Global MouseXSpeed:Int	'MouseXSpeed() Component
Global MouseYSpeed:Int	'MouseYSpeed() Component
Global CenterX:Int = GraphicsWidth() / 2	'Find CenterX
Global CenterY:Int = GraphicsHeight() / 2	'Find CenterY
MoveMouse CenterX,CenterY	'Move Mouse to Center of Screen

Function MouseSpeed()
	Local XM:Int = MouseX()
	Local YM:Int = MouseY()
	MouseXSpeed = XM - CenterX
	MouseYSpeed = YM - CenterY
	MoveMouse CenterX,CenterY
End Function


Chroma(Posted 1+ years ago)
Here's the test code to it. Hope someone finds this useful like me.

'Test Program
Graphics 800,600,0

include "MouseSpeed.bmx"

Local x:Float
Local y:Float

While Not KeyHit(KEY_ESCAPE)

MouseSpeed()	'Call This Every Cycle

'Move a "+" around with MouseSpeed
DrawText "+",x,y


Perturbatio(Posted 1+ years ago)

Chroma(Posted 1+ years ago)
Wish someone had put that in the archives like it should have been. :\

Perturbatio(Posted 1+ years ago)
sorry, I never thought it was that useful to people. :\

munch(Posted 1+ years ago)
This didn't work so I rewrote it. I don't know what Chroma was trying to do so I took a guess, it's a + that trails the mouse around. Uses code from here.
' Test

Graphics 640,480,0

Local mouse:TMouse = New TMouse

While Not (KeyHit(KEY_ESCAPE) + AppTerminate())

 DrawText "+", mouse.Trailx, mouse.Traily ' draw mouse trail

 DrawText "Xspeed: " + mouse.XSpeed(), 10, 10
 DrawText "Yspeed: " + mouse.YSpeed(), 10, 25
 DrawText "Trailx: " + mouse.Trailx, 10, 40
 DrawText "Traily: " + mouse.Traily, 10, 55



' Mouse Trail.bmx

' A modified version of TMouse type by GfK

Type TMouse

	Field lastx:Int
	Field lasty:Int
	Field Trailx:Int
	Field Traily:Int
	Method New() ' init trail
		Trailx = GraphicsWidth() / 2 ' center of screen
		Traily = GraphicsHeight() / 2
		MoveMouse(Trailx, Traily) ' center the mouse
		Trailx :+ 4 ' reposition below mouse pointer
		Traily :+ 22
		lastx = MouseX() ' get new mouse position
		lasty = MouseY()
	End Method
	Method XSpeed:Int() ' was MouseXSpeed()
		Return MouseX() - lastx
	End Method
	Method YSpeed:Int() ' was MouseYSpeed()
		Return MouseY() - lasty
	End Method
	Method Update()
		Trailx :+ MouseX() - lastx
		Traily :+ MouseY() - lasty
		lastx = MouseX()
		lasty = MouseY()
	End Method
End Type

Code Archives Forum