Noviembre 12, 2012, 12:24:04 PM Ultima modificación: Noviembre 12, 2012, 01:56:34 PM por malissimofilms
Saludos game makeros, soy malissimofilms. Hace un año me registre en este foro (Madre mía como pasa el tiempo XDD) porque estaba haciendo un juego un poco cutre en el game maker (creo que aún esta en el foro) y cuando lo termine deje de hacer juegos y de postear porque tenía muchos trabajos de clase. Hace un mes me entraron ganas de hacer otro juego (pero esta vez lo haré mejor que el anterior XD) y tengo algunas dudas. 

Sobre la duda pues tengo un problema con un codigo de mover cajas. El problema es que yo siempre utilizo los controles A,S,D y W para el desplazamiento del personaje (El juego que estoy haciendo es de plataformas) y en el vídeo de youtube el usuario escribio los controles de las flechas. Lo que esta marcado en negrita me gustaria saber que tengo que escribir para que cuando mi personaje colisione y al presionar el boton A o D la caja se mueva.

if (place_meeting(x-4,y,Rana) && keyboard_check (vk_right))
{
    x += 8;
}

if (place_meeting(x-4,y,Rana) && keyboard_check (vk_left))
{
    x -= 8;
}

[gml]
if (place_meeting(x-4,y,Rana) && keyboard_check (ord('D')))
{
    x += 8;
}

if (place_meeting(x-4,y,Rana) && keyboard_check (ord('A')))
{
    x -= 8;
}
[/gml]

Usando las funciones de keyboard_, para hacer referencia a letras del teclado debes usar ord('letra').



¡Saludos!
w f t g+

Cita de: Daz en Noviembre 12, 2012, 01:47:40 PM
[gml]
if (place_meeting(x-4,y,Rana) && keyboard_check (ord('D')))
{
    x += 8;
}

if (place_meeting(x-4,y,Rana) && keyboard_check (ord('A')))
{
    x -= 8;
}
[/gml]

Usando las funciones de keyboard_, para hacer referencia a letras del teclado debes usar ord('letra').



¡Saludos!

Perfecto, me ha funcionado. Muchas gracias :D

No se hace con X,Y se hace con hspeed Cambia el "X" por hspeed y antes en el event create coloca friction=0.0.1;

Cita de: elviskelley en Noviembre 14, 2012, 12:59:18 AM
No se hace con X,Y se hace con hspeed Cambia el "X" por hspeed y antes en el event create coloca friction=0.0.1;

No tiene porque usar necesariamente hspeed, también se puede hacer un movimiento cambiando x e y. Es más, a mí se me hace más cómodo cambiar las coordenadas que usar los movimientos predefinidos que trae GM (hspeed, vspeed), que luego son un lío para las colisiones y tal.

En conclusión, no es un "no se hace así", es más bien, "puedes hacerlo de una manera u otra". Pero no significa que su código sea incorrecto y DEBA usar hspeed, porque eso no es cierto.


¡Saludos!
w f t g+

cada uno posee sus metodos, pero empujar la caja con coordenadas X,Y, es mucho mas complicado que usar hspeed, vspeed, pero claro como dices hay varios metodos. Un ejemplo de los varios metodos.