El mouse y Small Basic (código)


a1

Como hemos visto en la librería GraphicsWindow tenemos unas propiedades para saber donde está el ratón en base a las coordenadas de la ventana, pero tan solo eso, no sabemos si hemos pulsado un botón, ni tenemos la opción de poder ocultar el cursor para utilizar nosotros otro en la aplicación con alguna imagen, ¿verdad? Pues por eso existe la librería Mouse en Small Basic, que nos pone a nuestro alcance nuevas propiedades y operaciones para darle un mejor uso en nuestros programas:

  • IsLeftButtonDown: Permite obtener si el      botón izquierdo del ratón está pulsado (“True”) o no (“False”).
  • IsRightButtonDown: Permite obtener si el      botón derecho del ratón está pulsado (“True”) o no (“False”).
  • MouseX: Permite obtener y      cambiar la posición global del ratón en la coordenada X. No es lo mismo      que la posición local que GraphicsWindow.MouseX nos da.
  • MouseY: Permite obtener y      cambiar la posición global del ratón en la coordenada Y. No es lo mismo      que la posición local que GraphicsWindow.MouseY nos da.
  • HideCursor(): Esconde el cursor del      ratón.
  • ShowCursor(): Muestra el cursor del      ratón.

Y aquí tenemos un ejemplo donde utilizaremos el ratón para mover un cuadrado por la ventana, haciendo click sobre este ítem cuando lo queramos arrastrar:

‘—————————————————-

‘ Prueba con el mouse

‘—————————————————-

GraphicsWindow.Title = “Prueba con el ratón”

GraphicsWindow.BackgroundColor = “White”

‘—————————————————-

isMovingBox = “False”

size = 42

sep = size / 2

‘—————————————————-

x = GraphicsWindow.Width / 2 – sep

y = GraphicsWindow.Height / 2 – sep

GraphicsWindow.PenColor = “Black”

GraphicsWindow.BrushColor = “SteelBlue”

square = Shapes.AddRectangle(42, 42)

Shapes.Move(square, x, y)

‘—————————————————-

GraphicsWindow.KeyDown = OnKeyDown

GraphicsWindow.MouseMove = OnMouseMove

GraphicsWindow.MouseDown = OnMouseDown

GraphicsWindow.MouseUp = OnMouseUp

‘—————————————————-

Sub OnKeyDown

If GraphicsWindow.LastKey = “S” Then

Mouse.ShowCursor()

ElseIf GraphicsWindow.LastKey = “H” Then

Mouse.HideCursor()

ElseIf GraphicsWindow.LastKey = “Up” Then

Mouse.MouseY = Mouse.MouseY – 10

ElseIf GraphicsWindow.LastKey =
“Down” Then

Mouse.MouseY = Mouse.MouseY + 10

ElseIf GraphicsWindow.LastKey = “Left” Then

Mouse.MouseX = Mouse.MouseX – 10

ElseIf GraphicsWindow.LastKey = “Right” Then

Mouse.MouseX = Mouse.MouseX + 10

EndIf

EndSub

‘—————————————————-

Sub OnMouseMove

If isMovingBox Then

x = GraphicsWindow.MouseX – distx

y = GraphicsWindow.MouseY – disty

Shapes.Move(square, x, y)

EndIf

EndSub

‘—————————————————-

Sub OnMouseDown

If Mouse.IsLeftButtonDown Then

ActivateMove()

ElseIf Mouse.IsRightButtonDown Then

endl = Text.GetCharacter(13)

endl = endl + Text.GetCharacter(10)

aux = “Global mouse coords”+endl

aux = aux+”X = “+Mouse.MouseX+endl

aux = aux+”Y = “+Mouse.MouseY+endl

aux = aux+”Local mouse coords” + endl

aux = aux+”X = “+GraphicsWindow.MouseX+endl

aux = aux+”Y = “+GraphicsWindow.MouseY

GraphicsWindow.ShowMessage(aux, “Mouse Info”)

EndIf

EndSub

‘—————————————————-

Sub ActivateMove

x1 = Shapes.GetLeft(square)

y1 = Shapes.GetTop(square)

x2 = x1 + size

y2 = y1 + size

mx = GraphicsWindow.MouseX

my = GraphicsWindow.MouseY

If x1<=mx And mx<=x2 And y1<=my And my<=y2 Then

distx = mx – x1

disty = my – y1

isMovingBox = “True”

EndIf

EndSub

‘—————————————————-

Sub OnMouseUp

isMovingBox = “False”

EndSub

http://mssbesp.wordpress.com/2009/05/11/el-raton-y-small-basic/

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s