Bueno tengo estos controles por defecto en el jugador.

Flechas = movimiento
Z = hablar/continuar dialogo
X = saltar/hablar
C = correr
Quiero crear un Menu que le permita al jugador cambiar los controles de su personaje, algo que funcione así.

Solo debe ser una pantalla que me permita hacerle este cambio, para que el jugador sea consciente de los cambios.
En código es algo como
objJugador
STEP////////////////////////////////////////////////////////////////////////////
///Desplazamiento
var keyLeft, keyRight, keyDown, keyJump, keyJumpRelease;
keyLeft = -keyboard_check(vk_left);
keyRight = keyboard_check(vk_right);
keyDown = keyboard_check(vk_down);
//keyUp = -keyboard_check(vk_up);
keyJump = keyboard_check_pressed(ord('X'));
keyJumpRelease = keyboard_check_released(ord('X'));
//Inputs de carrera
keyRun = keyboard_check_pressed(ord('C'));
keyRunRelease = keyboard_check_released(ord('C'));
obj_Cartel (Este es el objeto padre de los NPC)
STEP/////////////////////////////////////////////////////
/// Detectar si jugador abre el cartel
if (keyboard_check_pressed(ord('Z')) and distance_to_object(objJugador)<3) {
mostrar = true;
}
// Si se aleja cerramos el cartel y reiniciamos pagina
if (distance_to_object(objJugador)>3) { mostrar = false; pagina = -1; }
/// Detectar si jugador pasa página
if (keyboard_check_pressed(ord('Z')) and mostrar) {
// Pasar página
if (pagina+1 < array_length_1d(paginas)) pagina++;
else {
// Si nos pasamos del máximo reiniciamos el cartel
mostrar = false;
pagina = -1;
}
}

Flechas = movimiento
Z = hablar/continuar dialogo
X = saltar/hablar
C = correr
Quiero crear un Menu que le permita al jugador cambiar los controles de su personaje, algo que funcione así.

Solo debe ser una pantalla que me permita hacerle este cambio, para que el jugador sea consciente de los cambios.
En código es algo como
objJugador
STEP////////////////////////////////////////////////////////////////////////////
///Desplazamiento
var keyLeft, keyRight, keyDown, keyJump, keyJumpRelease;
keyLeft = -keyboard_check(vk_left);
keyRight = keyboard_check(vk_right);
keyDown = keyboard_check(vk_down);
//keyUp = -keyboard_check(vk_up);
keyJump = keyboard_check_pressed(ord('X'));
keyJumpRelease = keyboard_check_released(ord('X'));
//Inputs de carrera
keyRun = keyboard_check_pressed(ord('C'));
keyRunRelease = keyboard_check_released(ord('C'));
obj_Cartel (Este es el objeto padre de los NPC)
STEP/////////////////////////////////////////////////////
/// Detectar si jugador abre el cartel
if (keyboard_check_pressed(ord('Z')) and distance_to_object(objJugador)<3) {
mostrar = true;
}
// Si se aleja cerramos el cartel y reiniciamos pagina
if (distance_to_object(objJugador)>3) { mostrar = false; pagina = -1; }
/// Detectar si jugador pasa página
if (keyboard_check_pressed(ord('Z')) and mostrar) {
// Pasar página
if (pagina+1 < array_length_1d(paginas)) pagina++;
else {
// Si nos pasamos del máximo reiniciamos el cartel
mostrar = false;
pagina = -1;
}
}