Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Temas - Crashed__

1
Preguntas y respuestas / mi personaje se mueve solo
Febrero 24, 2020, 06:33:38 AM
Tengo el problema de que al empezar el juego mi personaje se mueve automaticamente a la derecha y aunque presione la izquierda no frena, encontre una forma de solucionarlo pero al hacerlo mi personaje se queda enganchado en las paredes y ya no se puede mover.Esto lo hice con la ayuda de unos videos tutoriales(que todavia me falta por terminar la lista de reproduccion) pero no encuentro solucion por ningun lado, soy nuevo en todo esto xd no se casi nada de programacion.
Adjunto el codigo

///Desplazamiento
var keyLeft, keyRight, keyJump, keyJumpRelease;

keyLeft  = -keyboard_check(vk_left);
keyRight = keyboard_check(vk_right);

keyJump        = keyboard_check_pressed(vk_up);
keyJumpRelease = keyboard_check_released(vk_up);

//Comprobacion de colisiones
intColLeft  = place_meeting(x - 1, y, obj_block);
intColRight = place_meeting(x + 1, y, obj_block);
bolGround   = place_meeting (x, y + 1, obj_block);

intMove = keyLeft + keyRight;

//Definir aceleración y fricción en funcion del medio
if (!bolGround)
{
    intTempAcc  = intAirAcc;
    intTempFric = intAirFric;
}
else
{
    intTempAcc  = intGroundAcc;
    intTempFric = intGroundFric;
}
//Velocidad horizontal
if (intMove != 0) intVX = scrApproach(intVX, intVXMax + intMove, intTempAcc);
else intVX = scrApproach(intVX, intVXMax + intMove, intTempFric);

//Velocidad vertical
if (!bolGround)
{
   intVY = scrApproach (intVY, intVYMax, intGravityNorm); //Caida libre
}

//Salto
if (keyJump && bolGround) intVY = -intVYMax;


//Colision horizontal
repeat(abs(intVX))
{
   if (!place_meeting(x + sign(intVX), y, obj_block))
   {
      x += sign(intVX)
   }
   else
   {
      intVX = 0;
      break;
   }
}

//Colisión vertical
repeat(abs(intVY))
{
    if (place_meeting(x, y + sign(intVY), obj_block))
    {
    intVY = 0;
    break;
    }
    else y += sign(intVY);
}