feat(intro/outro): rètol centrat sobre el playfield i ajustos de timings/colors
This commit is contained in:
1 parent
98303f7ce8
commit
0752df0f62
5 files changed
+15
-10
No files matched your search
@@ -2,7 +2,7 @@
|
|||||||
# Generado con font_gen.py
|
# Generado con font_gen.py
|
||||||
|
|
||||||
box_width 18
|
box_width 18
|
||||||
box_height 30
|
box_height 28
|
||||||
columns 15
|
columns 15
|
||||||
|
|
||||||
# codepoint_decimal ancho_visual
|
# codepoint_decimal ancho_visual
|
||||||
@@ -116,7 +116,7 @@ columns 15
|
|||||||
224 13 # à
|
224 13 # à
|
||||||
225 13 # á
|
225 13 # á
|
||||||
232 10 # è
|
232 10 # è
|
||||||
233 10 # é
|
233 11 # é
|
||||||
236 7 # ì
|
236 7 # ì
|
||||||
237 8 # í
|
237 8 # í
|
||||||
242 13 # ò
|
242 13 # ò
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -10,14 +10,14 @@ room_intro:
|
|||||||
text_enter_ms: 400 # text esquerra → centre
|
text_enter_ms: 400 # text esquerra → centre
|
||||||
text_hold_ms: 1500 # text quiet al centre
|
text_hold_ms: 1500 # text quiet al centre
|
||||||
text_exit_ms: 400 # text centre → fora per l'esquerra
|
text_exit_ms: 400 # text centre → fora per l'esquerra
|
||||||
line_gap_px: 0 # px extra entre les dues línies (piràmide / sala)
|
line_gap_px: -4 # px extra entre les dues línies (piràmide / sala)
|
||||||
|
|
||||||
room_outro:
|
room_outro:
|
||||||
text_enter_ms: 400
|
text_enter_ms: 400
|
||||||
text_hold_ms: 1500
|
text_hold_ms: 1500
|
||||||
text_exit_ms: 400
|
text_exit_ms: 400
|
||||||
fade_out_ms: 500 # món visible → negre opac
|
fade_out_ms: 500 # món visible → negre opac
|
||||||
line_gap_px: 0 # px extra entre les dues línies (fase / completada)
|
line_gap_px: -4 # px extra entre les dues línies (fase / completada)
|
||||||
black_hold_ms: 500 # pausa en negre abans d'entrar a la pròxima sala
|
black_hold_ms: 500 # pausa en negre abans d'entrar a la pròxima sala
|
||||||
|
|
||||||
text:
|
text:
|
||||||
|
|||||||
+2
-2
@@ -24,8 +24,8 @@ colors:
|
|||||||
# de notification_* perquè la fase i les notificacions són dos canals
|
# de notification_* perquè la fase i les notificacions són dos canals
|
||||||
# visuals distints: ací pots canviar el color del rètol sense tocar
|
# visuals distints: ací pots canviar el color del rètol sense tocar
|
||||||
# els missatges del HUD.
|
# els missatges del HUD.
|
||||||
room_text: 232
|
room_text: 160
|
||||||
room_text_outline: 255
|
room_text_outline: 253
|
||||||
|
|
||||||
timings:
|
timings:
|
||||||
notification_ms: 4000
|
notification_ms: 4000
|
||||||
|
|||||||
@@ -657,6 +657,11 @@ void GameScene::renderRoomText() {
|
|||||||
// de les dues.
|
// de les dues.
|
||||||
if (!room_text_font_) { return; }
|
if (!room_text_font_) { return; }
|
||||||
|
|
||||||
|
// Centre vertical de la zona de joc (canvas sense la HUD). Reemplaça
|
||||||
|
// l'antic GameCanvas::CENTER_Y per descomptar la franja del marcador
|
||||||
|
// i tenir el rètol equilibrat sobre el playfield.
|
||||||
|
const int PLAY_CENTER_Y = (GameCanvas::HEIGHT + Map::hud_h) / 2;
|
||||||
|
|
||||||
constexpr int KERNING = 0;
|
constexpr int KERNING = 0;
|
||||||
constexpr Uint8 STROKE_DIST = 1;
|
constexpr Uint8 STROKE_DIST = 1;
|
||||||
// Colors del rètol via UiConfig — abans el contorn estava
|
// Colors del rètol via UiConfig — abans el contorn estava
|
||||||
@@ -725,8 +730,8 @@ void GameScene::renderRoomText() {
|
|||||||
// sumem cap avall a la sala, mantenint el centre del bloc fix.
|
// sumem cap avall a la sala, mantenint el centre del bloc fix.
|
||||||
const int LINE_HEIGHT = room_text_font_->getLineHeight();
|
const int LINE_HEIGHT = room_text_font_->getLineHeight();
|
||||||
const int GAP = transition_config_.intro_text_line_gap_px;
|
const int GAP = transition_config_.intro_text_line_gap_px;
|
||||||
const int Y_PYRAMID = GameCanvas::CENTER_Y - LINE_HEIGHT - (GAP / 2);
|
const int Y_PYRAMID = PLAY_CENTER_Y - LINE_HEIGHT - (GAP / 2);
|
||||||
const int Y_ROOM = GameCanvas::CENTER_Y + (GAP / 2);
|
const int Y_ROOM = PLAY_CENTER_Y + (GAP / 2);
|
||||||
draw_line(LINE_PYRAMID, X_PYRAMID, Y_PYRAMID);
|
draw_line(LINE_PYRAMID, X_PYRAMID, Y_PYRAMID);
|
||||||
draw_line(LINE_ROOM, X_ROOM, Y_ROOM);
|
draw_line(LINE_ROOM, X_ROOM, Y_ROOM);
|
||||||
} else if (state_ == RoomFsm::State::ROOM_OUTRO && transition_.phase >= 0 && transition_.phase <= 2) {
|
} else if (state_ == RoomFsm::State::ROOM_OUTRO && transition_.phase >= 0 && transition_.phase <= 2) {
|
||||||
@@ -743,8 +748,8 @@ void GameScene::renderRoomText() {
|
|||||||
const int X_2 = compute_x(W_2, 0, 2, DUR_ENTER, DUR_EXIT, /*from_right=*/true);
|
const int X_2 = compute_x(W_2, 0, 2, DUR_ENTER, DUR_EXIT, /*from_right=*/true);
|
||||||
const int LINE_HEIGHT = room_text_font_->getLineHeight();
|
const int LINE_HEIGHT = room_text_font_->getLineHeight();
|
||||||
const int GAP = transition_config_.outro_text_line_gap_px;
|
const int GAP = transition_config_.outro_text_line_gap_px;
|
||||||
const int Y_1 = GameCanvas::CENTER_Y - LINE_HEIGHT - (GAP / 2);
|
const int Y_1 = PLAY_CENTER_Y - LINE_HEIGHT - (GAP / 2);
|
||||||
const int Y_2 = GameCanvas::CENTER_Y + (GAP / 2);
|
const int Y_2 = PLAY_CENTER_Y + (GAP / 2);
|
||||||
draw_line(LINE_1, X_1, Y_1);
|
draw_line(LINE_1, X_1, Y_1);
|
||||||
draw_line(LINE_2, X_2, Y_2);
|
draw_line(LINE_2, X_2, Y_2);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user