Está en la página 1de 2

///Variables

image_speed = 0.5

//Movimiento
intVX = 0;
intVY = 0;
intMove = 0;

intMultiplier = 1.0 //Multiplicador

intVXMax = 6.5 * intMultiplier;


intVYMax = 9 * intMultiplier;
intJumpHeight = 8 * intMultiplier;
intGravityNorm = 0.5 * intMultiplier;
intGroundAcc = 1.0 * intMultiplier;
intGroundFric = 1.9 * intMultiplier;
intAirAcc = 0.75 * intMultiplier;
intAirFric = 0.1 * intMultiplier;

///Desplazamiento

var keyJump, keyJumpRelease, keyRight, keyLeft;

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

keyJump = keyboard_check_pressed(ord('X'));
keyJumprelease = keyboard_check_released(ord('X'));

//Comprobaci�n de colisiones
intColLeft = place_meeting(x - 1, y, objBlock);
intColRight = place_meeting(x + 1, y, objBlock);
bolGround = place_meeting(x, + y + 1, objBlock);

intMove = keyRight + keyLeft;

//Definir aceleracci�n y fricci�n en funci�n del medio


if (!bolGround)
{
intTempFric = intAirFric;
intTempAcc = intAirAcc;
}
else
{
intTempFric = intGroundFric;
intTempAcc = intGroundAcc;
}

//Velocidad horizontal
if (intMove != 0)
{
intVX = scrApproach (intVX, intVXMax * intMove, intTempFric);
}
else
{
intVX = scrApproach (intVX, intVXMax * intMove, intTempAcc);
}

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

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

//Colisi�n horizontal
repeat(abs(intVX))
{
if !place_meeting(x + sign(intVX), y, objBlock)
{
x += sign(intVX);
}
else
{
intVX = 0;
break;
}
}

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

///Animaciones

//Reflejo

if intMove != 0 image_xscale = intMove;

//Cambio de sprite

if (!bolGround)
{
sprite_index = sprBillyJump;
}
else
{
sprite_index = sprBilly;
if (intVX != 0) sprite_index = sprBillyWalk;
}

También podría gustarte