add scaling tips
This commit is contained in:
parent
7970679e03
commit
c7ecfa141b
1 changed files with 35 additions and 24 deletions
|
|
@ -63,30 +63,6 @@ elif lose_condition:
|
||||||
- Die Bedingungen kannst du selbst festlegen, z.B. alle Gegner besiegt = Gewinn, Spieler tot = Verlust.
|
- Die Bedingungen kannst du selbst festlegen, z.B. alle Gegner besiegt = Gewinn, Spieler tot = Verlust.
|
||||||
- Nach dem Bildschirm kannst du das Spiel beenden oder neu starten.
|
- Nach dem Bildschirm kannst du das Spiel beenden oder neu starten.
|
||||||
|
|
||||||
## Gameplay-Tipp: Begrenzte Wasserflaschen & Auffüllen an Trinkbrunnen
|
|
||||||
|
|
||||||
- Implementiere eine Variable für die Anzahl der Wasserflaschen (Munition), z.B. `player.ammo`.
|
|
||||||
- Verringere `player.ammo` bei jedem Schuss (`SPACE`).
|
|
||||||
- Erlaube das Auffüllen der Munition, wenn der Spieler einen Trinkbrunnen-Pixel berührt (z.B. durch Kollisionsabfrage mit Trinkbrunnen-Positionen).
|
|
||||||
- Zeige die aktuelle Munition als Zahl oder Symbol im HUD an.
|
|
||||||
|
|
||||||
**Beispiel (Pseudo-Code):**
|
|
||||||
|
|
||||||
```python
|
|
||||||
# Beim Schießen:
|
|
||||||
if player.ammo > 0:
|
|
||||||
bottles.append(TapWater(player.x, player.y, player.dir))
|
|
||||||
player.ammo -= 1
|
|
||||||
|
|
||||||
# Beim Berühren eines Trinkbrunnens:
|
|
||||||
for brunnen in trinkbrunnen_list:
|
|
||||||
if player.rect.colliderect(brunnen.rect):
|
|
||||||
player.ammo = MAX_AMMO
|
|
||||||
```
|
|
||||||
|
|
||||||
- Die Trinkbrunnen-Positionen kannst du aus der GeoJSON oder aus einer Liste von Pixelkoordinaten laden.
|
|
||||||
- So wird das Sammeln und Nachfüllen von Wasser spielerisch relevant!
|
|
||||||
|
|
||||||
## Trinkbrunnen-Pixelpositionen ins Spiel laden und anzeigen
|
## Trinkbrunnen-Pixelpositionen ins Spiel laden und anzeigen
|
||||||
|
|
||||||
- Die Datei `trinkbrunnen_pixel_positions.npy` enthält alle Trinkbrunnen-Positionen als Pixelkoordinaten.
|
- Die Datei `trinkbrunnen_pixel_positions.npy` enthält alle Trinkbrunnen-Positionen als Pixelkoordinaten.
|
||||||
|
|
@ -123,6 +99,41 @@ for px, py in trinkbrunnen_positions:
|
||||||
|
|
||||||
- So werden die Trinkbrunnen sichtbar und interaktiv im Spiel!
|
- So werden die Trinkbrunnen sichtbar und interaktiv im Spiel!
|
||||||
|
|
||||||
|
## Die Karte größer machen (Abstandsfaktor)
|
||||||
|
|
||||||
|
- Wenn du möchtest, dass die Karte größer wirkt und die Abstände zwischen den Trinkbrunnen (und anderen Objekten) wachsen, kannst du einen "Abstandsfaktor" einführen.
|
||||||
|
- Damit werden alle Positionen und die Kartengröße mit einem Faktor multipliziert, sodass die Karte gestreckt wird und die Wege länger werden.
|
||||||
|
|
||||||
|
**So geht's:**
|
||||||
|
|
||||||
|
1. Definiere einen Abstandsfaktor, z.B.:
|
||||||
|
|
||||||
|
```python
|
||||||
|
DIST_FACTOR = 2.0 # 2.0 = doppelte Entfernung, 1.0 = Standard
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Wende den Faktor auf alle Positionen und die Kartengröße an:
|
||||||
|
|
||||||
|
```python
|
||||||
|
# Karte vergrößern
|
||||||
|
scaled_map = pygame.transform.smoothscale(map_surface, (int(MAP_W * DIST_FACTOR), int(MAP_H * DIST_FACTOR)))
|
||||||
|
WIN.blit(scaled_map, (0, 0))
|
||||||
|
|
||||||
|
# Positionen der Trinkbrunnen anpassen
|
||||||
|
for px, py in trinkbrunnen_positions:
|
||||||
|
pygame.draw.circle(WIN, (0, 180, 255), (int(px * DIST_FACTOR), int(py * DIST_FACTOR)), 10)
|
||||||
|
|
||||||
|
# Spieler und Gegner-Positionen ebenfalls multiplizieren
|
||||||
|
player.x *= DIST_FACTOR
|
||||||
|
player.y *= DIST_FACTOR
|
||||||
|
for enemy in enemies:
|
||||||
|
enemy.x *= DIST_FACTOR
|
||||||
|
enemy.y *= DIST_FACTOR
|
||||||
|
```
|
||||||
|
|
||||||
|
- Wichtig: Wende den Faktor direkt nach dem Laden der Positionen an, damit alle Objekte synchron gestreckt werden.
|
||||||
|
- So wird die Karte "größer" und die Wege zwischen den Trinkbrunnen länger!
|
||||||
|
|
||||||
## .exe erstellen (Windows)
|
## .exe erstellen (Windows)
|
||||||
|
|
||||||
**Kurzanleitung auf Deutsch:**
|
**Kurzanleitung auf Deutsch:**
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue