Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Jaume en Septiembre 20, 2015, 08:27:02 PM

Título: Como impedir que el raton salga de una vista?
Publicado por: Jaume en Septiembre 20, 2015, 08:27:02 PM
Hola,

pongo en antecedentes:  tengo un juego empezado (estoy aprendiendo),  he usado codigo de Penumbra para crear una estructura con un fondo, una vista con el Hud y una vista mas grande con la zona de juego,  en la zona de juego tengo una room. 3000x3000 de la cual muestro 700x700.  y la vista esta definida para que siga al jugador
También he redefinido el puntero del mouse usando un sprite que he dibujado.
Hasta aquí todo funciona bién.
Pero pierdo el puntero del mouse.  si me salgo del area de juego al ser tan grande la room se pierde el puntero.
Como puede hacer para que no se salga el puntero?
Gracias por adelantado.
Título: Re:Como impedir que el raton salga de una vista?
Publicado por: penumbra en Septiembre 20, 2015, 10:40:02 PM
Lo primero que se me ocurre es usar un objeto que tuviera la función de puntero, el cual estaría limitado a moverse dentro de la vista. Si este objeto intenta salir por alguno de los bordes de la vista, su movimiento se detiene, por ejemplo, para limitar el movimiento haría algo como:
[gml]
x = clamp(mouse_x, view_xview[1], view_xview[1] + view_wview[1])
y = clamp(mouse_y, view_yview[1], view_yview[1] + view_hview[1])
[/gml]
Esto hará que el objeto siga al puntero real sólo dentro de los límites de la vista 1. Si el puntero real abandona esos límites, el objeto se queda inmóvil en alguno de los bordes de la vista 1
Título: Re:Como impedir que el raton salga de una vista?
Publicado por: Jaume en Septiembre 20, 2015, 10:55:12 PM
  Ya tengo un objeto raton.  He aplicado tu código y me funciona perfectamente con el margen izquierdo y el margen superior, pero no con el margen derecho y el inferior.  Voy a jugar con esto a ver si encuentro la manera.

Gracias
Título: Re:Como impedir que el raton salga de una vista?
Publicado por: penumbra en Septiembre 20, 2015, 11:07:41 PM
Prueba a usar las variables de puerto view_xport[] y view_wport[] en lugar de las de la vista.
Título: Re:Como impedir que el raton salga de una vista?
Publicado por: Jaume en Septiembre 20, 2015, 11:16:40 PM
Ya lo tengo arreglado, con un pequño codigo controlo los margenes derecho y inferior.  Gracias por todo.
Título: Re:Como impedir que el raton salga de una vista?
Publicado por: Jaume en Septiembre 20, 2015, 11:38:18 PM
No me acaba de funcionar bién con tu codigo, supongo que por la manera como tengo hechas las views.

Ya lo tengo arreglado aunque tu codigo me parece mas elegante.

Gracias por todo.
Título: Re:Como impedir que el raton salga de una vista?
Publicado por: penumbra en Septiembre 20, 2015, 11:46:38 PM
Acabo de probarlo, modificándolo así me funciona sin problema:
[gml]
x = clamp(device_mouse_raw_x(0), view_xview[1], view_xview[1] + view_wview[1])
y = clamp(device_mouse_raw_y(0), view_yview[1], view_yview[1] + view_hview[1])
[/gml]

y en draw del objeto puntero
[gml]if (view_current == 1)  draw_self()[/gml]