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.
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
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.
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)
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.
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.
Mejor usa una tecla más común. Yo estoy usando un teclado en inglés y no encuentro ese código de tecla.
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)
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.