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.

#1 Mayo 13, 2015, 11:04:31 PM Ultima modificación: Mayo 13, 2015, 11:08:53 PM por penumbra
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

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.

#3 Mayo 13, 2015, 11:57:43 PM Ultima modificación: Mayo 14, 2015, 12:00:30 AM por penumbra
Entonces define un evento de usuario y luego usa uno de los siguientes métodos para llamarlo

event_user

event_perform

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.

#5 Mayo 14, 2015, 01:42:50 AM Ultima modificación: Mayo 14, 2015, 01:44:30 AM por penumbra
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.

#7 Mayo 14, 2015, 07:17:38 AM Ultima modificación: Mayo 14, 2015, 09:04:47 AM por penumbra
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.