oma-lander/game/stars.lua
28allday 790ca87bfb Lunar Lander: complete Love2D game with Omarchy integration
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>
2026-04-13 14:42:13 +01:00

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