add non-configurable escape button to input type, to be used as a way to go backwards or exit menu

This commit is contained in:
2025-02-20 13:32:37 +00:00
parent 9feae2bb0f
commit 6762a1b994
7 changed files with 23 additions and 2 deletions

View File

@@ -134,6 +134,7 @@ sig
, down: key_code
, jump: key_code
, attack: key_code
, escape: key_code
}
val keyFromString: string -> key_code option
@@ -275,6 +276,7 @@ struct
, down: key_code
, jump: key_code
, attack: key_code
, escape: key_code
}
fun keyFromString str =

View File

@@ -7,5 +7,6 @@ struct
, downHeld: bool
, attackHeld: bool
, jumpHeld: bool
, escapeHeld: bool
}
end

View File

@@ -206,7 +206,15 @@ struct
, ...
} = player
val {leftHeld, rightHeld, upHeld, downHeld, attackHeld, jumpHeld} = input
val
{ leftHeld
, rightHeld
, upHeld
, downHeld
, attackHeld
, jumpHeld
, escapeHeld
} = input
val xAxis = getXAxis (leftHeld, rightHeld)
val facing = getFacing (facing, xAxis)

View File

@@ -0,0 +1,4 @@
structure OptionsType =
struct
datatype focus =
end

View File

@@ -304,6 +304,7 @@ struct
, down = CoreKey.KEY_DOWN
, jump = CoreKey.KEY_Z
, attack = CoreKey.KEY_X
, escape = CoreKey.KEY_ESCAPE
}
val () = InputState.setControls controls

View File

@@ -7,6 +7,7 @@ struct
, up = CoreKey.KEY_E
, attack = CoreKey.KEY_J
, jump = CoreKey.KEY_K
, escape = CoreKey.KEY_ESCAPE
}
fun setControls controls = keyMappings := controls
@@ -19,6 +20,7 @@ struct
, downHeld = ref false
, jumpHeld = ref false
, attackHeld = ref false
, escapeHeld = ref false
, width = ref (1920.0 : Real32.real)
, height = ref (1080.0 : Real32.real)
}
@@ -30,6 +32,7 @@ struct
, downHeld = !(#downHeld state)
, attackHeld = !(#attackHeld state)
, jumpHeld = !(#jumpHeld state)
, escapeHeld = !(#escapeHeld state)
}
(* there are three action states reported by OS: PRESS, REPEAT and RELEASE.
@@ -40,7 +43,7 @@ struct
case GlfwKeyMap.codeFromKey key of
SOME code =>
let
val {left, right, down, up, attack, jump} = !keyMappings
val {left, right, down, up, attack, jump, escape} = !keyMappings
val action = actionToBool action
in
if code = left then #leftHeld state := action
@@ -49,6 +52,7 @@ struct
else if code = down then #downHeld state := action
else if code = attack then #attackHeld state := action
else if code = jump then #jumpHeld state := action
else if code = escape then #escapeHeld state := action
else ()
end
| NONE => ()

View File

@@ -103,6 +103,7 @@ struct
, down = down
, jump = jump
, attack = attack
, escape = CoreKey.KEY_ESCAPE
}
| _ => NONE
end