DX: config.lua com a unica font de configuracio (sense defaults amagats)

This commit is contained in:
2026-05-15 21:19:07 +02:00
parent 525ca12c9a
commit aba2acbdf3
2 changed files with 103 additions and 133 deletions
+76 -53
View File
@@ -1,12 +1,17 @@
-- Configuracio del Pepe Runner DX
-- Aquest fitxer es carrega amb dofile() al iniciar el joc.
-- Si no existeix o te errors, s'usen els valors per defecte.
-- Comenta una linia (--) per a deixar el seu valor per defecte.
-- Configuracio del Pepe Runner DX.
--
-- Aquest fitxer es LA UNICA FUENT DE VERDAT per als valors editables del
-- joc (skin, tecles, textos, temps de les animacions, vides, audio).
-- El motor del joc (pepe_runner_dx.lua) llig aquestes globals al iniciar
-- via dofile("config.lua"); no hi ha defaults amagats al codi.
--
-- Si vols recuperar un valor "original", consulta la rama de git o este
-- mateix fitxer en versions anteriors. Si elimines una clau, el joc petara
-- al usar-la — millor que prendre un valor obscur per defecte.
-- ====================================================================
-- ASPECTE GRAFIC
-- ====================================================================
-- Skin: nom del fitxer (sense extensio) dins de la carpeta skins/ que
-- aporta els bitmaps i colors del joc. Skins inclosos:
--
@@ -15,26 +20,41 @@
-- "pintor" — Look revisat amb sprites propis (Pepe i 3 enemics diferents,
-- escala de ma, pedra que decreix d'altura al cavar...).
--
-- Cada skin defineix la seva propia paleta i bitmaps. Per a personalitzar
-- Cada skin defineix la seua propia paleta i bitmaps. Per a personalitzar
-- colors o sprites, edita el fitxer corresponent a skins/<nom>.lua.
-- (En tots els casos el char 0 es reescriu a zeros, perque el ROM d'ascii
-- hi te una caixa hueca que taparia tot el mapa.)
skin = "pintor"
-- ====================================================================
-- JUGABILITAT
-- ====================================================================
-- Vides inicials. Convencio arcade (com Pac-Man): el numero es de
-- "reserves", no de vides totals. 2 reserves = 3 vides totals (la actual +
-- les 2 que es veuen al HUD). 0 = una sola oportunitat.
VIDES_INI = 2
-- Fase per la qual arranca una partida nova (1..10).
-- Util per a depurar un mapa concret sense haver de jugar des de la 1.
LEVEL_INI = 1
-- ====================================================================
-- TECLES
-- ====================================================================
-- Mapeig per defecte: cursors per a moure's, Z/X per a fer forats.
-- Pots usar qualsevol constant KEY_* del intérpret (KEY_A..KEY_Z,
-- KEY_UP/DOWN/LEFT/RIGHT, KEY_SPACE, KEY_RETURN, ...).
-- keys.up = KEY_UP
-- keys.down = KEY_DOWN
-- keys.left = KEY_LEFT
-- keys.right = KEY_RIGHT
-- keys.dig_left = KEY_Z
-- keys.dig_right = KEY_X
-- keys.quit = KEY_Q -- abandona la partida → game over
-- Nota: KEY_ESCAPE no es pot usar — l'intérpret la captura per a la seua
-- consola de debug abans que Lua la veja.
keys = {
up = KEY_UP,
down = KEY_DOWN,
left = KEY_LEFT,
right = KEY_RIGHT,
dig_left = KEY_Z,
dig_right = KEY_X,
quit = KEY_Q, -- abandona la partida → game over
}
-- ====================================================================
-- TEXTOS DEL JOC
@@ -42,52 +62,55 @@ skin = "pintor"
-- Tots els missatges que veu el jugador. Pots editar per a corregir
-- ortografia o traduir a una altra variant sense haver de tocar el .lua.
-- (Convencio: Inicial Majuscula, resta minuscula.)
-- textos.title_press_play = "Prem l'espai per a jugar"
-- textos.game_over = "FI DE JOC"
-- textos.new_record = "Nou record !"
-- textos.score_label = "Punts"
-- textos.level_label = "Nivell"
-- textos.lives_label = "Vides"
-- textos.record_label = "Record"
-- textos.name_label = "Nom:"
-- textos.name_help = "(A-Z)"
textos = {
title_press_play = "Prem l'espai per a jugar",
game_over = "FI DE JOC",
new_record = "Nou record !",
score_label = "Punts",
level_label = "Nivell",
lives_label = "Vides",
record_label = "Record",
name_label = "Nom:",
name_help = "(A-Z)",
}
-- ====================================================================
-- TEMPS I DURACIONS
-- ====================================================================
-- Tots els valors van en *frames* (a 60 fps, 60 frames = 1 segon).
-- Pots ajustar la sensacio del joc sense tocar el .lua.
-- temps.score_step = 3 -- frames per cada +1 del comptador
-- -- animat del HUD. 3 = ~20 punts/segon.
-- temps.fade_frames = 18 -- duracio del fade out (i del fade in)
-- -- entre pantalles. 18 = 0.3 s per fase.
-- temps.mort_anim_frames = 30 -- duracio de l'animacio visual de mort
-- -- (Pepe parpadejant + careta trista).
-- temps.respawn_delay_frames = 120 -- temps que Pepe queda invisible abans
-- -- del respawn (els malos segueixen).
-- temps.invuln_frames = 180 -- temps que Pepe es invulnerable al
-- -- respawn, parpadejant blanc/groc.
-- temps.escala_step_frames = 6 -- frames entre cada cel·la nova de
-- -- l'escala lateral quan creix.
-- temps.gameover_delay_frames = 80 -- espera abans del typewriter de
-- -- "FI DE JOC" (per a que no es
-- -- solape amb sfx_gameover).
-- temps.typewriter_step_frames = 6 -- frames per cada lletra del
-- -- typewriter al game over.
-- temps.gameover_show_frames = 60 -- temps que el text final es queda
-- -- visible abans de la transicio.
temps = {
score_step = 3, -- frames per cada +1 del comptador animat
-- del HUD. 3 = ~20 punts/segon.
fade_frames = 18, -- duracio de cada fase del fade (out i in
-- son simetrics). 18 = 0.3 s per fase.
mort_anim_frames = 30, -- duracio de l'animacio visual de mort
-- (Pepe visible parpadejant + careta trista).
respawn_delay_frames = 120, -- temps que Pepe queda invisible abans
-- del respawn (els malos segueixen).
invuln_frames = 180, -- temps que Pepe es invulnerable al
-- respawn, parpadejant blanc/groc.
escala_step_frames = 6, -- frames entre cada cel·la nova de
-- l'escala lateral quan creix.
gameover_delay_frames = 15, -- espera abans del typewriter de
-- "FI DE JOC" (perque no es solape
-- amb sfx_gameover).
typewriter_step_frames = 8, -- frames per cada lletra del
-- typewriter al game over.
gameover_show_frames = 120, -- temps que el text final es queda
-- visible abans de la transicio.
}
-- ====================================================================
-- JINGLES
-- AUDIO (jingles dels estats no-jugables)
-- ====================================================================
-- Es reproduixen una sola vegada quan entres al estat (title i enter name)
-- perque el motor d'ascii te 1 sol canal d'audio: les SFX tallarien la
-- musica si la posarem in-game.
-- L'engine d'ascii nomes te 1 canal d'audio: per aixo no hi ha musica
-- in-game (les SFX la tallarien). Es reprodueixen una sola vegada per
-- entrada al estat (no en bucle).
music_on = true -- false desactiva tots els jingles. Les SFX continuen.
-- music_on = false -- desactiva els jingles. Per defecte true.
-- Pots reescriure les melodies amb MML estandard (vore ASCII_API.md §4):
-- musica.title = "l4o4cegfedcceg"
-- musica.entername = "l2o5cegcegced"
-- Melodies en MML estandard (vore ASCII_API.md §4).
musica = {
title = "l4o4cegfedcceg",
entername = "l2o5cegcegced",
}