Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: eams1986 en Julio 24, 2014, 06:21:11 AM

Título: **La collision con el bloque se traba***
Publicado por: eams1986 en Julio 24, 2014, 06:21:11 AM
Hola makeros despues de tanto y tanto ya no puedo mas tengo un problema con la collision de el personaje con el bloque

resulta que todo funciona bien pero yo al personaje le quiero poner Hspeed=4 en create para que el player empiece corriendo  resulta que al poner el hspeed se me traba el jugador a la la hora de saltar en el bloque

Gracias amigos makeros


les dejo el archivo ....por 2 lados

http://www.mediafire.com/download/cq3krkklpkcmy0c/pandarun.gmz

para ver si alguien me puede ayudar
Título: Re:**La collision con el bloque se traba***
Publicado por: Black_Cat en Julio 24, 2014, 07:53:28 AM
Claro, lo que sucede es que hspeed es constante, por lo tanto, se mueve a la derecha todo el rato.  :o
Entonces si no haces una verificacion, se moverá a la derecha sin importar si hay un objeto. Pero como la colision de objetos solidos evita que el personaje lo traspase, entonces no se solapa.

Supongo que podrías colocar una verificacion sencilla en el evento step:

if (place_free(x+4,y))
hspeed = 4;
else
hspeed = 0;


Título: Re:**La collision con el bloque se traba***
Publicado por: eams1986 en Julio 24, 2014, 06:50:01 PM
Listo Gato negro el codigo funka de maravilla ...

eso era lo que ocupaba ..

le debo  2 cervesas ejejej

Muchas gracias
Título: Re:**La collision con el bloque se traba***
Publicado por: eams1986 en Julio 24, 2014, 07:29:29 PM
Hola me surgio un problema

if (place_free(x+4,y))
hspeed = 4;
else
hspeed = 0;

le queria cambiar el hspeed=6 o 8 estaba midiendo la velociodad
pero cuando la cambio se traba . de nuevo

Gracias
Título: Re:**La collision con el bloque se traba***
Publicado por: Black_Cat en Julio 24, 2014, 07:58:02 PM
Eso es porque la verificación y la velocidad deben seguir la misma relacion:

var VEL = 8; // o 4 o 6

if (place_free(x+VEL,y))
   hspeed = VEL;
else
   hspeed = 0;
Título: Re:**La collision con el bloque se traba***
Publicado por: eams1986 en Julio 24, 2014, 08:04:38 PM
Gracias Cat se lo agradezco mucho

muy interesante todo esto que ha dicho...


Asi funciona bien

Ahora bien para hacer el doble salto no me afectara o si??

create
//double_jump=1;

step
if (!place_free(x,y+1) and device_mouse_check_button_pressed (0,mb_left))
{vspeed=-10}

if place_free(x,y+1) && double_jump =1 {vspeed=-10
double_jump=0}

pero no me funciona no se en lo que estare errando

Gracias
Título: Re:**La collision con el bloque se traba***
Publicado por: Black_Cat en Julio 24, 2014, 08:17:13 PM
El tema de moverse con hspeed, no involucra directamente el hecho de poder saltar. Puesto que solo se verifica si hay espacio a la derecha y continua moviendo.

Ahora, según veo tu ejemplo, el personaje comienza en el aire, y al estar esto:

if place_free(x,y+1) && double_jump =1
{
vspeed=-10
double_jump=0
}

en el evento step, se ejecuta apenas comienza el juego. Entonces "double_jump" se coloca en cero, cuando en realidad debería colocarse en 1 si quisiera hacerse un doble salto.
Por lo tanto nunca se ejecuta.
Título: Re:**La collision con el bloque se traba***
Publicado por: eams1986 en Julio 24, 2014, 08:51:12 PM
en que es lo que estoy fallando. :'(