tab-shooter/README.md

96 lines
3 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.

# 🚀 Tab Shooter
A small Chrome browser game that turns your open tabs into targets.
Pilot a spaceship, blast the tabs you no longer need, and they really get closed.
> Für alle, die zu viele Tabs offen haben. Schieß sie ab — und sie verschwinden wirklich.
---
## 📦 Installation (in Chrome laden)
1. Chrome öffnen → `chrome://extensions` aufrufen.
2. Oben rechts den **Entwicklermodus** (Developer mode) einschalten.
3. Auf **„Entpackt laden“** (Load unpacked) klicken.
4. Den Ordner `tab-shooter` auswählen.
5. Das Tab-Shooter-Icon 🚀 erscheint in der Toolbar. Anklicken → Spiel startet.
> Nach Code-Änderungen in `popup.js`/`manifest.json` die Extension auf
> `chrome://extensions` einfach neu laden (🔄-Button).
---
## 🎮 Spielen
1. Auf das Toolbar-Icon klicken.
2. Wählen: **Aktuelles Fenster** oder **Alle Fenster**.
3. **SPIEL STARTEN** drücken.
4. Deine echten Tabs erscheinen als gegnerische Raumschiffe (mit echtem Favicon + Titel).
5. Schießen — jeder Tab, den du triffst, wird in Chrome **wirklich geschlossen**.
### Steuerung
| Aktion | Tastatur | Maus |
|---|---|---|
| Bewegen | `←` `→` oder `A` `D` | Maus bewegen |
| Schießen | `Leertaste` | Klick (halten) |
### Features
- **Echte Tabs als Gegner** Favicon & Titel, verknüpft via Tab-ID.
- **Bewegte Gegner** manche sind „feindlich" und schießen zurück.
- **Power-Ups** (zufälliger Drop):
- 🔫 **Triple Shot** drei Schüße gleichzeitig (6 s)
-**Rapid Fire** schnellere Schussfolge (6 s)
- 🛡️ **Shield** absorbiert einen Treffer
- **Score & Highscore** gespeichert via `chrome.storage.local`.
- **3 Leben**, danach Game Over mit Statistik.
---
## 🗂 Projektstruktur
```
tab-shooter/
├── manifest.json # MV3-Manifest, Berechtigungen
├── popup.html # Overlay-UI: Start-, Spiel- & Game-Over-Screen
├── popup.css # Space-Theme Styling
├── popup.js # Game-Engine + Chrome-API-Anbindung
├── background.js # Service Worker (MV3)
├── generate_icons.py # Icon-Generator (pure stdlib, keine Abhängigkeiten)
├── README.md
└── icons/
├── icon16.png
├── icon48.png
└── icon128.png
```
---
## 🔐 Berechtigungen & Privatsphäre
| Permission | Zweck |
|---|---|
| `tabs` | Offene Tabs lesen (Titel, Favicon, ID) und getroffene Tabs schließen. |
| `favicon` | Favicons über die `_favicon`-API laden. |
| `storage` | Highscore lokal speichern. |
**Es werden keine Inhaltsdaten (Page content) von Tabs gelesen** — nur Titel und Favicon-URL.
Tabs werden **ausschließlich dann** geschlossen, wenn sie im Spiel getroffen wurden.
Der aktive Popup-Tab und interne `chrome://`-Seiten sind nie Ziele.
---
## 🛠 Icons neu generieren
Falls du die Icons anpassen willst (Farben, Form in `generate_icons.py`):
```bash
python generate_icons.py
```
Das Skript nutzt nur die Python-Standardbibliothek (`zlib` + `struct`) — keine PIL nötig.
---
Viel Spaß beim Aufräumen! 🛸💥