T
Tony Moonen
Guest
Hello everyone,
i need some help with coding a pause system while object_player is moving.
Pausing works when moving most directions but for some reason, it doesn't pause when object_player is moving up-left (holding key_left and key_up and then pressing escape).
I checked all the code but i can't find the problem.
It's probably a really easy fix but i can't figure it out.
Here's the code i have right now for object_player.
Create:
Step:
User event 0 (pause event):
Hope this isn't too cluttered and someone can help me with this.
EDIT:
it's fixed.
apparently there's a weird thing with the keyboard of my laptop that doesn't allow me to press these certain keys at the same time.
had nothing to do with the code.
i need some help with coding a pause system while object_player is moving.
Pausing works when moving most directions but for some reason, it doesn't pause when object_player is moving up-left (holding key_left and key_up and then pressing escape).
I checked all the code but i can't find the problem.
It's probably a really easy fix but i can't figure it out.
Here's the code i have right now for object_player.
Create:
Code:
paused = false;
vertical_speed = 4;
horizontal_speed = 4;
//user events
pause_toggle = 0;
Code:
//pause code
if keyboard_check_pressed(vk_escape)
{
event_user(pause_toggle);
}
//key defining
//X
var key_left = keyboard_check(vk_left);
var key_right = keyboard_check(vk_right);
//Y
var key_up = keyboard_check(vk_up);
var key_down = keyboard_check(vk_down);
//released key defining
var key_left_released = keyboard_check_released(vk_left);
var key_right_released = keyboard_check_released(vk_right);
var key_up_released = keyboard_check_released(vk_up);
var key_down_released = keyboard_check_released(vk_down);
//movement defining
var move_x = (-key_left + key_right);
var move_y = (-key_up + key_down);
//delta time code
dt = (delta_time / 1000000) * 60;
//pause check
if paused = true {
//speed defining when paused
hspd = 0;
vspd = 0;
} else {
//speed defining when not paused
hspd = move_x * horizontal_speed * dt;
vspd = move_y * vertical_speed * dt;
}
if paused = false {
//sprite code walking
//sprite code double-key prevention
if key_left && key_right { sprite_index = sprite_player_neutralright; }
if key_up && key_down { sprite_index = sprite_player_neutraldown; }
//sprite code stop walking
if key_left_released { sprite_index = sprite_player_neutralleft }
if key_right_released { sprite_index = sprite_player_neutralright }
if key_up_released { sprite_index = sprite_player_neutralup }
if key_down_released { sprite_index = sprite_player_neutraldown }
//walking X
if move_x == -1 { sprite_index = sprite_player_walkingleft; }
if move_x == 1 { sprite_index = sprite_player_walkingright; }
//walking Y
if move_y == -1 { sprite_index = sprite_player_walkingup; }
if move_y == 1 { sprite_index = sprite_player_walkingdown; }
} else {
}
//COLLISION
//collision X
if (place_meeting(x + hspd, y, object_wall)) {
while (!place_meeting(x + sign(hspd), y, object_wall))
x += sign(hspd);
hspd = 0;
}
//collision Y
if (place_meeting(x, y + vspd, object_wall)) {
while (!place_meeting(x, y + sign(vspd), object_wall))
y += sign(vspd);
vspd = 0;
}
//unstuck code
if (place_meeting(x,y,object_wall))
{
for(var i = 0; i < 1000; i++)
{
if (!place_meeting(x + i,y,object_wall))
{
x += i;
break;
}
if (!place_meeting(x - i,y,object_wall))
{
x -= i;
break;
}
if (!place_meeting(x,y - i,object_wall))
{
y -= i;
break;
}
if (!place_meeting(x,y + i,object_wall))
{
y += i;
break;
}
if (!place_meeting(x + i,y - i,object_wall))
{
x += i;
y -= i;
break;
}
if (!place_meeting(x - i,y - i,object_wall))
{
y -= i
x -= i
break;
}
if (!place_meeting(x + i,y + i,object_wall))
{
y += i
x += i
break;
}
if (!place_meeting(x - i,y + i,object_wall))
{
y += i
x -= i
break;
}
}
}
x += hspd;
y += vspd;
Code:
if not paused {
paused = true;
} else {
paused = false;
}
EDIT:
it's fixed.
apparently there's a weird thing with the keyboard of my laptop that doesn't allow me to press these certain keys at the same time.
had nothing to do with the code.
Last edited by a moderator: