SirCumferance icon

Movement

SirCumferance | PRO | 05/05/19 04:07:10 AM UTC | 0 ⭐ | 345 👁️ | Never ⏰ | []
Game Maker |

0 B

|

None

|

0 👍

/

0 👎

/Player movement  
key_left = keyboard_check(vk_left);
key_right = keyboard_check(vk_right);
key_jump = keyboard_check(vk_space);
 
// Calculate movement
var move = key_right - key_left;
 
hsp = move * walkspd;
 
vsp = vsp + grv;
 
if (place_meeting(x, y+1,oWall)) && (key_jump)
{
    vsp = -7;
     show_debug_message("Jumping from wall!");
}
 
if (place_meeting(x, y+1,oFloor)) && (key_jump)
{
    vsp = -7;
    show_debug_message("Jumping from floor!");
}
 
if (place_meeting(x, y+1,oDirt)) && (key_jump)
{
    vsp = -7;
    show_debug_message("Jumping from floor!");
}
 
//horizontal collision
if (place_meeting(x + hsp,y,oFloor))
{
    while (!place_meeting(x+sign(hsp),y,oFloor))
    { 
        x = x + sign(hsp);
    }
    hsp = 0
}
 
if (place_meeting(x + hsp,y,oDirt))
{
    while (!place_meeting(x+sign(hsp),y,oDirt))
    { 
        x = x + sign(hsp);
    }
    hsp = 0
}
 
if (place_meeting(x + hsp, y, oWall))
{
    while (!place_meeting(x+sign(hsp), y, oWall))
    {
        x = x + sign(hsp);
    }
    hsp = 0; 
}
 
if (place_meeting(x + hsp, y, oStone))
{
    while (!place_meeting(x+sign(hsp), y, oStone))
    {
        x = x + sign(hsp);
    }
    hsp = 0; 
}
 
x = x + hsp;
 
//vertical collision
if (place_meeting(x,y + vsp,oFloor))
{
    while (!place_meeting(x,y+sign(vsp),oFloor))
    { 
        y = y + sign(vsp);
    }
    vsp = 0;
}
 
if (place_meeting(x,y + vsp,oStone))
{
    while (!place_meeting(x,y+sign(vsp),oStone))
    { 
        y = y + sign(vsp);
    }
    vsp = 0;
}
 
if (place_meeting(x,y + vsp,oDirt))
{
    while (!place_meeting(x,y+sign(vsp),oDirt))
    { 
        y = y + sign(vsp);
    }
    vsp = 0;
}
 
 
if (place_meeting(x,y + vsp, oWall))
{
    while (!place_meeting(x,y+sign(vsp),oWall))
    { 
        y = y + sign(vsp);
    }
    vsp = 0;
}
y = y + vsp;
 
//animation
if (!place_meeting(x,y+1,oWall))
{
    sprite_index = sPlayerW;
    image_speed = 0;
    if (sign(vsp) > 0) image_index = 1; else image_index = 0;
}
 
else {
    image_speed = 1
    if (hsp == 0)
    {
        sprite_index = sPlayer;
    }
    else
    {
        sprite_index = sPlayerA;
    }
    
}
 
if (!place_meeting(x,y+1,oFloor))
{
    sprite_index = sPlayerW;
    image_speed = 0;
    if (sign(vsp) > 0) image_index = 1; else image_index = 0;
}
 
else {
    image_speed = 1
    if (hsp == 0)
    {
        sprite_index = sPlayer;
    }
    else
    {
        sprite_index = sPlayerA;
    }
    
}
 
if (!place_meeting(x,y+1,oStone))
{
    sprite_index = sPlayerW;
    image_speed = 0;
    if (sign(vsp) > 0) image_index = 1; else image_index = 0;
}
 
else {
    image_speed = 1
    if (hsp == 0)
    {
        sprite_index = sPlayer;
    }
    else
    {
        sprite_index = sPlayerA;
    }
    
}

Comments