Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Marth en Mayo 13, 2015, 10:04:06 PM

Título: Como crear mis propios eventos.
Publicado por: Marth en Mayo 13, 2015, 10:04:06 PM
Estoy interesado en la posibilidad de crear eventos que no están de por si en el Game Maker, como puede ser por ejemplo pulsar teclas como la coma, el punto o la eñe.
Tengo entendido que es posible de algún modo, por lo que me gustaría que me pudieseis explicar como se hace esto.
Título: Re:Como crear mis propios eventos.
Publicado por: penumbra en Mayo 13, 2015, 11:04:31 PM
Bueno, GML permite definir eventos personalizados, pero para hacer lo que pides no se necesita crear un evento nuevo. Sólo hay que usar la función keyboard_key para detectar el código de la tecla que se presiona

http://docs.yoyogames.com/source/dadiospice/002_reference/mouse,%20keyboard%20and%20other%20controls/keyboard%20input/keyboard_key.html (http://docs.yoyogames.com/source/dadiospice/002_reference/mouse,%20keyboard%20and%20other%20controls/keyboard%20input/keyboard_key.html)

El propio ejemplo del manual indica cómo usarlo
Título: Re:Como crear mis propios eventos.
Publicado por: Marth en Mayo 13, 2015, 11:42:15 PM
Lo del keyboard key no me vale. Yo no quiero en el evento "step" if("boton ñ esta pulsado"). Yo lo que quiero que crear un evento "la tecla ñ esta pulsada" y meter dentro de ese evento las acciones para el objeto.
Título: Re:Como crear mis propios eventos.
Publicado por: penumbra en Mayo 13, 2015, 11:57:43 PM
Entonces define un evento de usuario y luego usa uno de los siguientes métodos para llamarlo

event_user (http://docs.yoyogames.com/source/dadiospice/002_reference/objects%20and%20instances/objects/generating%20events/event_user.html)

event_perform (http://docs.yoyogames.com/source/dadiospice/002_reference/objects%20and%20instances/objects/generating%20events/event_perform.html)

Aun así, me temo que vas a necesitar usar en step un if("boton ñ esta pulsado"). De otra manera no hay forma de que el evento sepa que debe ser lanzado al pulsar ñ (o si la hay, no se me ocurre)
Título: Re:Como crear mis propios eventos.
Publicado por: Marth en Mayo 14, 2015, 12:49:27 AM
Es decir, que incluyo las instrucciones en los "used defined" y luego en otro evento lo convoco con la función "event_user". ¡Vaya chasco! :-X

Por cierto, la 'ñ', a diferencia de otras letras, no funciona a la hora del condicional.
Adjunto lo que tengo hecho a ver que me ocurre.
Título: Re:Como crear mis propios eventos.
Publicado por: penumbra en Mayo 14, 2015, 01:42:50 AM
La solución es usar esta condición
[gml]
if( keyboard_key == 192 )
    event_user(0)
[/gml]

Ignoro si el keycode de la tecla Ñ varía según el teclado/SO, pero no creo.
Título: Re:Como crear mis propios eventos.
Publicado por: Clamud en Mayo 14, 2015, 03:58:39 AM
Mejor usa una tecla más común. Yo estoy usando un teclado en inglés y no encuentro ese código de tecla.
Título: Re:Como crear mis propios eventos.
Publicado por: penumbra en Mayo 14, 2015, 07:17:38 AM
Interesante. Mi teclado también es inglés, aunque el sistema de entrada lo tengo en español, y ese es el código que me arroja para la "ñ". Si el código varía entre usuarios, pues no tiene caso usar la ñ (tampoco alcanzo a comprender por qué la necesidad hay de usar la tecla "ñ" en lugar de una tecla más común)
Título: Re:Como crear mis propios eventos.
Publicado por: Marth en Mayo 14, 2015, 03:57:42 PM
Esta vez si que ha funcionado.
Pero vamos, al final esto de los "eventos de usuario" son una completa decepción. :-X
Yo lo que quería es crear mis propios eventos, pero esto no tiene nada que ver.