From 3f12a740da7f496b36f163d8f5ef3f000ce9dad2 Mon Sep 17 00:00:00 2001 From: joren Date: Mon, 23 Mar 2026 11:26:26 +0100 Subject: [PATCH] UI: Rework constants for arcade-style layout and color palette - Named color constants (arcade blue walls, golden coins, pink doors) - Header bar layout with PAC-MAN title, score label, key indicator - Sidebar time display with label and large value - Game over and pause overlay positions - Smaller round-looking coins (coin-size + coin-inset) - Removed old magic position values Co-Authored-By: Claude Opus 4.6 --- pacman-project/constants.rkt | 114 ++++++++++++++++++++++++++--------- 1 file changed, 87 insertions(+), 27 deletions(-) diff --git a/pacman-project/constants.rkt b/pacman-project/constants.rkt index 3039992..120ca03 100644 --- a/pacman-project/constants.rkt +++ b/pacman-project/constants.rkt @@ -27,6 +27,7 @@ ;; Coin rendering coin-inset + coin-size ;; Sprites sprite-scale-pacman @@ -56,19 +57,45 @@ rotation-up rotation-down - ;; UI positions - score-text-size - score-text-x - score-text-y - time-text-size + ;; Colors + color-background + color-wall + color-door + color-coin + color-text + color-title + color-header-bg + color-game-over + color-pause-bg + color-pause-text + + ;; UI layout + header-height + header-title-size + header-title-x + header-title-y + score-label-size + score-label-x + score-label-y + score-value-size + score-value-x + score-value-y + key-ui-x + key-ui-y + sidebar-x + sidebar-width + time-label-size time-label-x time-label-y + time-value-size time-value-x time-value-y - separator-x - separator-width - key-ui-x - key-ui-y) + game-over-text-size + game-over-text-x + game-over-text-y + pause-text-size + pause-text-x + pause-text-y) (begin @@ -88,8 +115,9 @@ (define cell-type-key 3) (define cell-type-door 4) - ;; Coin rendering: inset in pixels from cell edge - (define coin-inset 7) + ;; Coin rendering + (define coin-inset 9) + (define coin-size 6) ;; Sprite scale factors (define sprite-scale-pacman 1.5) @@ -119,22 +147,54 @@ (define rotation-up 90) (define rotation-down -90) - ;; UI positions for score display - (define score-text-size 40) - (define score-text-x 560) - (define score-text-y 20) + ;; Colors — arcade-style palette + (define color-background "black") + (define color-wall "#2121DE") + (define color-door "#FFB8FF") + (define color-coin "#FFB851") + (define color-text "white") + (define color-title "#FFFF00") + (define color-header-bg "#111111") + (define color-game-over "#FF0000") + (define color-pause-bg "black") + (define color-pause-text "#FF0000") - ;; UI positions for time display (right side of separator) - (define time-text-size 35) - (define time-label-x 710) - (define time-label-y 300) - (define time-value-x 800) - (define time-value-y 400) + ;; UI layout — header bar at the top + (define header-height 90) + (define header-title-size 36) + (define header-title-x 250) + (define header-title-y 25) - ;; Separator line between play field and UI - (define separator-x 670) - (define separator-width 24) + ;; Score display (left side of header) + (define score-label-size 20) + (define score-label-x 20) + (define score-label-y 25) + (define score-value-size 32) + (define score-value-x 20) + (define score-value-y 50) - ;; Key UI position (next to score) - (define key-ui-x 20) - (define key-ui-y 35))) + ;; Key UI indicator position + (define key-ui-x 600) + (define key-ui-y 30) + + ;; Sidebar (right of maze) + (define sidebar-x 672) + (define sidebar-width 4) + + ;; Time display (right sidebar area) + (define time-label-size 20) + (define time-label-x 700) + (define time-label-y 200) + (define time-value-size 40) + (define time-value-x 710) + (define time-value-y 240) + + ;; Game over overlay + (define game-over-text-size 48) + (define game-over-text-x 180) + (define game-over-text-y 380) + + ;; Pause overlay + (define pause-text-size 48) + (define pause-text-x 200) + (define pause-text-y 400)))