add ammo tips
This commit is contained in:
parent
d0d65d018d
commit
a9e1dd70d0
1 changed files with 62 additions and 0 deletions
|
|
@ -292,6 +292,19 @@ if player_rect.colliderect(brunnen_rect):
|
|||
player.ammo = MAX_AMMO
|
||||
```
|
||||
|
||||
**Tipp: Nur 1 Munition pro Trinkbrunnen-Besuch auffüllen**
|
||||
|
||||
- Wenn der Spieler bei jedem Kontakt mit einem Trinkbrunnen nur 1 Munition bekommen soll, ändere die Auffüll-Logik so:
|
||||
|
||||
```python
|
||||
if player_rect.colliderect(brunnen_rect):
|
||||
if player.ammo < MAX_AMMO:
|
||||
player.ammo += 1
|
||||
```
|
||||
|
||||
- So muss der Spieler mehrere Brunnen aufsuchen, um volle Munition zu bekommen.
|
||||
- Optional: Damit der Spieler nicht mehrfach pro Frame Munition bekommt, kannst du merken, ob er gerade einen Brunnen berührt hat und erst wieder auffüllen, wenn er den Brunnen verlässt und erneut berührt.
|
||||
|
||||
**4. Munition als Counter im HUD anzeigen:**
|
||||
|
||||
- Im Haupt-Draw-Loop nach dem Zeichnen der Spielfläche:
|
||||
|
|
@ -303,3 +316,52 @@ WIN.blit(ammo_text, (20, 20))
|
|||
```
|
||||
|
||||
- So sieht der Spieler immer, wie viel Munition noch übrig ist!
|
||||
|
||||
**Tipp: Trinkbrunnen als "benutzt" markieren und blockieren**
|
||||
|
||||
- Um zu verhindern, dass ein Brunnen mehrfach benutzt wird, kannst du für jeden Brunnen speichern, ob er schon verwendet wurde.
|
||||
- Nutze dazu z.B. eine Liste oder ein Dictionary:
|
||||
|
||||
```python
|
||||
# Nach dem Laden der Positionen:
|
||||
used_brunnen = [False] * len(trinkbrunnen_positions)
|
||||
|
||||
# Beim Auffüllen:
|
||||
for i, (px, py) in enumerate(trinkbrunnen_positions):
|
||||
brunnen_rect = pygame.Rect(px, py, 20, 20)
|
||||
if player_rect.colliderect(brunnen_rect) and not used_brunnen[i]:
|
||||
player.ammo += 1
|
||||
used_brunnen[i] = True # Brunnen blockieren
|
||||
```
|
||||
|
||||
- So kann jeder Brunnen nur einmal pro Spiel verwendet werden.
|
||||
- Optional: Zeige blockierte Brunnen anders an (z.B. grau oder mit Symbol).
|
||||
|
||||
**Tipp: Trinkbrunnen für 10 Sekunden blockieren**
|
||||
|
||||
- Statt einen Brunnen dauerhaft zu blockieren, kannst du ihn für eine bestimmte Zeit (z.B. 10 Sekunden) sperren.
|
||||
- Nutze dazu eine Liste mit Zeitstempeln:
|
||||
|
||||
```python
|
||||
import time
|
||||
# Nach dem Laden der Positionen:
|
||||
blocked_until = [0] * len(trinkbrunnen_positions)
|
||||
|
||||
# Beim Auffüllen:
|
||||
now = time.time()
|
||||
for i, (px, py) in enumerate(trinkbrunnen_positions):
|
||||
brunnen_rect = pygame.Rect(px, py, 20, 20)
|
||||
if player_rect.colliderect(brunnen_rect) and now > blocked_until[i]:
|
||||
player.ammo += 1
|
||||
blocked_until[i] = now + 10 # 10 Sekunden blockieren
|
||||
```
|
||||
|
||||
- Beim Zeichnen kannst du blockierte Brunnen anders anzeigen:
|
||||
|
||||
```python
|
||||
for i, (px, py) in enumerate(trinkbrunnen_positions):
|
||||
color = (0, 180, 255) if time.time() > blocked_until[i] else (120, 120, 120)
|
||||
pygame.draw.circle(WIN, color, (px, py), 10)
|
||||
```
|
||||
|
||||
- So wird jeder Brunnen nach Benutzung für 10 Sekunden gesperrt und dann wieder nutzbar!
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue