Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: DaiGoN en Abril 07, 2014, 08:50:54 AM

Título: Problema con la aceleración y las paredes!
Publicado por: DaiGoN en Abril 07, 2014, 08:50:54 AM
Hola!
Tengo un problemilla con mi pje ya que se queda pillado con la pared.

A grandes rasgos, estoy aumentando la velocidad en 1 por step cada vez que pulsas una dirección.
El problema es que a veces se queda pillado con el objeto lateral con el que colisiona para no salirse.

El problema, por ahora, lo tengo solucionado restandole (a la derecha) y sumandole (a la izquierda) el mod de 32 +4/-4.
El +4 se lo tuve que poner porque sino seguia atrancandose.
Tal como lo tengo ahora, se queda dando saltitos en los laterales y queda un poco... raro

Entiendo que se está colando porque al sumar la velocidad salta al medio de esos 32 pixeles de la barrera y se quedan colisionando todo el rato
Hay alguna forma de parar el pje al chocar o mandarlo a la posicion maxima por cada lado?

Un saludo!!

Título: Re:Problema con la aceleración y las paredes!
Publicado por: vampy09 en Abril 08, 2014, 03:04:24 AM
Primero crea el siguiente script:

Nombralo: move_to_contact_with

var dirn, max_dist, contact_obj, dx, dy;

dirn = argument0;
max_dist = argument1;
contact_obj = argument2;

if ( max_dist == 1 )
    {
     max_dist = 1000;
     dx = lengthdir_x( 1, dirn );
     dy = lengthdir_y( 1, dirn );
     dist = 1;
    }

while( dist <= max_dist )
    {
     if ( place_meeting( x+dx, y+dy, contact_obj ) == true )
     {
      return true;
      x = x + dx;
      y = y + dy;
      dist = dist + 1;
     }
return false;


Ahora en el evento colision con el objeto pared:

obj_jugador
Evento Colision obj_pared
x = xprevious;
y = yprevious;

move_to_contact_with( direction, -1, obj_pared );

hspeed = 0;


Se que requerira algunos ajustes adaptarlo a tu juego.
Te he adjuntado un ejemplo. Lo unico que debes tener en cuenta que yo creo un objeto parent de los que todos los  tipos de pisos y paredes.
Título: Re:Problema con la aceleración y las paredes!
Publicado por: DaiGoN en Abril 08, 2014, 11:58:32 AM
Muchas gracias!

No lo entiendo muy bien, porque estoy algo pez aun en codigo GML pero esta tarde intento implementarlo a ver si consigo ponerlo :)
Título: Re:Problema con la aceleración y las paredes!
Publicado por: vampy09 en Abril 09, 2014, 03:50:44 AM
Bueno si se te hace complicado entonces pon tu código y aquí poco a poco te ayudamos a resolverlo.

Saludos!