Faithful recreation of Atari Lunar Lander (1979) with vector wireframe aesthetic. Auto-detects Omarchy system theme and font on launch. Features: - Dynamic zoom camera (zooms in as you approach the surface) - Procedural jagged terrain with flat landing pads (2X, 3X, 5X multipliers) - Apollo-style wireframe lander with thrust flame - Gravity, thrust, rotation physics - Landing evaluation: good (speed/angle/pad check), hard, crash - Fuel management (750 starting, +50 for good landings) - Crash debris particles, thrust exhaust particles - Star field background - HUD: altitude, horizontal/vertical speed, fuel bar, score, time - Persistent high scores with 3-letter initial entry - Procedural sound effects (thrust, landing chimes, crash, fuel warning) - Full-screen scaling, system font detection Controls: Arrows/WASD rotate+thrust, Space abort, Enter start Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
29 lines
734 B
Lua
29 lines
734 B
Lua
local Palette = require("rendering.palette")
|
|
|
|
local Stars = {}
|
|
|
|
local starList = {}
|
|
|
|
function Stars.init()
|
|
starList = {}
|
|
math.randomseed(99999)
|
|
for i = 1, 150 do
|
|
table.insert(starList, {
|
|
x = math.random(),
|
|
y = math.random() * 0.7, -- top 70% of screen
|
|
brightness = 0.2 + math.random() * 0.6,
|
|
size = 0.5 + math.random() * 1.0,
|
|
})
|
|
end
|
|
math.randomseed(os.time())
|
|
end
|
|
|
|
function Stars.draw(screenW, screenH)
|
|
local p = Palette.get()
|
|
for _, s in ipairs(starList) do
|
|
love.graphics.setColor(p.stars[1], p.stars[2], p.stars[3], s.brightness)
|
|
love.graphics.circle("fill", s.x * screenW, s.y * screenH, s.size)
|
|
end
|
|
end
|
|
|
|
return Stars
|