Added Glitch Room Source code to Gitty

This commit is contained in:
Jeff Luke committed 2026-10-04 11:31:17 -07:00
commit 1ac9eb5644
505 files changed
+28504

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
@tool
extends "res://games/pacman/pacman_view.gd"
## A static design-time board, using the same renderer as the running game.
## No gameplay model, audio, input handlers, or room events are instantiated.
func _ready() -> void:
super._ready()
if not Engine.is_editor_hint():
hide()
set_process(false)
return
var preview_ghosts: Array[Dictionary] = []
for i in range(4):
var ghost := Maze.actor([Maze.DOOR, Vector2i(13, 14), Vector2i(11, 14), Vector2i(15, 14)][i], Vector2i.LEFT)
ghost["status"] = "active" if i == 0 else "house"
ghost["frightened"] = false
preview_ghosts.append(ghost)
model = {
"state": "ready", "phase_time": 2.0, "clock": 0.0,
"score": 0, "high_score": 0, "level": 1, "lives": 3,
"dots": Maze.pellets(), "player": Maze.actor(Maze.PLAYER_START, Vector2i.LEFT),
"ghosts": preview_ghosts, "fruit_time": 0.0, "fright_time": 0.0,
"popup_time": 0.0,
}
_update_preview()
func _process(_delta: float) -> void:
if Engine.is_editor_hint(): _update_preview()
func _update_preview() -> void:
# Match runtime placement inside the configured game viewport, independently
# of the editor's current panel size, zoom, and pan.
var screen_size := Vector2(
ProjectSettings.get_setting("display/window/size/viewport_width", 1920),
ProjectSettings.get_setting("display/window/size/viewport_height", 1080)
)
var factor := minf(screen_size.x / GAME_RECT.size.x, screen_size.y / GAME_RECT.size.y)
if factor >= 1.0: factor = floorf(factor)
scale = Vector2.ONE * factor
position = ((screen_size - GAME_RECT.size * factor) * 0.5).floor()
model.lives = int(get_parent().get("starting_lives"))
queue_redraw()