Files
fuesse-sexy/README.md
Guido 5a6a1f363b Umbau zu "Wanted!"-Minigame
- Neues Spielprinzip: Fahndungsplakat + Feld voller Fuesse/Deko, gesuchten Fuss
  antippen bevor Timer ablaeuft; sofort neue Runde mit anderer Farbe.
- Progression: Raster -> wild verteilt -> Bewegung (2-3 Gruppen -> einzeln),
  Anzahl + Tempo steigen mit Score.
- Farben: 8 klar unterscheidbare Fuss-Farben (kein Braun/Hautton-Doppel) ->
  die gesuchte Farbe kommt garantiert nur EINMAL vor.
- Serverseitige Rangliste (data/leaderboard.json), Top 10 auf der Startseite,
  Name einmalig abgefragt + in localStorage gecacht.
- Reset per Befehl: npm run reset-stats
- Server stark vereinfacht (/api/feet, /api/leaderboard, /api/score); Pan/Zoom-,
  Wimmelbild- und Szenen-Generator-Code entfernt.
- WANTED-Plakat groesser, Timer schlanker, Startseite sauber zentriert.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-04 21:57:13 +02:00

74 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# fuesse.sexy — „Wanted!" 🦶
Ein kleines Arcade-Spiel nach dem Vorbild des **„Wanted!"-Minispiels aus New Super Mario
Bros.**: Oben ein Fahndungsplakat mit *einem* gesuchten Fuß, unten wuseln viele Füße (in
verschiedenen Farben) + etwas Deko herum. **Schnapp dir den gesuchten Fuß, bevor die Zeit
abläuft** — dann kommt sofort ein neues Plakat mit einer anderen Farbe.
- **Zeitdruck:** Countdown; jeder Treffer gibt Zeit dazu, Fehlklick zieht Zeit ab. Bei 0 → Game-Over.
- **Wird schwerer:** erst ordentliches **Raster**, dann **wild verteilt**, dann **Bewegung**
(erst in 23 Gruppen, später einzeln) — und je weiter, desto **schneller** und **mehr** Füße.
- **Gesucht ist immer ein Fuß, aber die Farbe wechselt jede Runde** — nicht auf Autopilot klicken!
- **Rangliste:** die Top 10 auf der Startseite, serverseitig gespeichert. Nach dem Spiel
wird **einmal** nach dem Namen gefragt (danach gecacht).
## Installation
```sh
./install.sh
```
Das Skript installiert alles Nötige, startet den Server **im Hintergrund** und zeigt die
URL. Dann im Browser öffnen: **http://<server-ip>:3000** (lokal: http://localhost:3000).
Manuell: `npm install && npm start`.
## Die Füße & Deko erweitern
Alle Bildchen liegen in `library/`:
```
library/
feet/ ← die Füße (= die gesuchten Figuren). Farbe = Dateiname.
props/ ← Deko ("andere Bildchen") als Zusatz-Ablenker.
```
Neue Bildchen einfach in den passenden Ordner legen und **Server neu starten** — fertig.
Formate: `.svg`, `.png`, `.webp`, `.jpg`. Für Füße gilt: **mind. 2** in `library/feet/`
(mehr = mehr Farb-Vielfalt). Am besten freigestellt (transparenter Hintergrund), grob
quadratisch.
### Woher Bildchen nehmen?
openclipart.org (CC0), svgrepo.com (CC0-Filter), kenney.nl (CC0), pixabay.com. Bei
Flaticon/Freepik Namensnennung beachten.
## Feintuning
In `public/js/app.js` oben:
- `START_TIME`, `MAX_TIME`, `BONUS`, `PENALTY` — Timer/Balance.
- `difficulty(score)` — Anzahl, Bewegungs-Stufen (`grid`/`scatter`/`groups`/`individual`)
und Tempo je Score.
## Rangliste
- Gespeichert in `data/leaderboard.json` (wird automatisch angelegt, überlebt Neustarts).
- Endpoints: `GET /api/leaderboard` (Top 10), `POST /api/score` `{name, score}`.
- Namen werden beim Anzeigen escaped (kein XSS). Kein Anti-Cheat — Spaßspiel.
## Deployment (Ausblick)
Normaler Node-Server. Auf einen Node-Host bringen (VPS/LXC/Railway/Render), `./install.sh`,
Domain **fuesse.sexy** per Reverse-Proxy (z.B. Nginx Proxy Manager) darauf zeigen. Für
HTTPS hinter Cloudflare: DNS-Challenge (Cloudflare-Token) im Proxy nutzen.
## Projektstruktur
```
server/index.js schlanker Express-Server (Bildchen-Liste + Rangliste)
public/ Frontend (Startseite, Spiel, Game-Over) — Vanilla JS
library/feet/ die Füße (gesuchte Figuren)
library/props/ Deko-Ablenker
data/ Rangliste (leaderboard.json, zur Laufzeit)
install.sh Ein-Befehl-Setup + detached Start
```