Estructura DX i escena logo JAILGAMES animada
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
-- Input modern — wrappers per btn/btnp amb un mapejat unic d'accions.
|
||||
--
|
||||
-- Cada accio te una llista de tecles (perque l'usuari puga jugar amb
|
||||
-- fletxes o amb O P Q A indistintament). En cada frame guardem l'estat
|
||||
-- 'held' (mante premut) i 'pressed' (acaba de ser premut). Aixi les
|
||||
-- escenes no han de saber res de KEY_*.
|
||||
|
||||
local M = {}
|
||||
|
||||
M.accions = {
|
||||
amunt = { KEY_UP, KEY_Q },
|
||||
avall = { KEY_DOWN, KEY_A },
|
||||
esq = { KEY_LEFT, KEY_O },
|
||||
dreta = { KEY_RIGHT, KEY_P },
|
||||
accept = { KEY_RETURN, KEY_SPACE, KEY_KP_ENTER },
|
||||
cancel = { KEY_ESCAPE },
|
||||
}
|
||||
|
||||
M.held = {}
|
||||
M.pressed = {}
|
||||
|
||||
local function qualsevol_btn(tecles)
|
||||
for i = 1, #tecles do
|
||||
if btn(tecles[i]) then return true end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
local function qualsevol_btnp(tecles)
|
||||
for i = 1, #tecles do
|
||||
if btnp(tecles[i]) then return true end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function M.reset()
|
||||
for nom, _ in pairs(M.accions) do
|
||||
M.held[nom] = false
|
||||
M.pressed[nom] = false
|
||||
end
|
||||
end
|
||||
|
||||
function M.tick()
|
||||
for nom, tecles in pairs(M.accions) do
|
||||
M.held[nom] = qualsevol_btn(tecles)
|
||||
M.pressed[nom] = qualsevol_btnp(tecles)
|
||||
end
|
||||
end
|
||||
|
||||
-- Helpers per a les escenes — mes legibles que llegir taules directament.
|
||||
function M.es_mante(accio) return M.held[accio] == true end
|
||||
function M.acaba_premuda(accio) return M.pressed[accio] == true end
|
||||
|
||||
-- Per a la pantalla titol/logo: «qualsevol tecla» per avançar.
|
||||
local TECLES_AVANCAR = { KEY_RETURN, KEY_SPACE, KEY_KP_ENTER,
|
||||
KEY_O, KEY_P, KEY_Q, KEY_A,
|
||||
KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT }
|
||||
|
||||
function M.qualsevol_tecla()
|
||||
return qualsevol_btnp(TECLES_AVANCAR)
|
||||
end
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user