Karten-Fortschritt wie im Original: erledigte Punkte blau, bereister Weg als orange Punktspur, Unerreichtes unsichtbar (Stefans Durchspiel-Screenshots)
This commit is contained in:
@@ -2043,3 +2043,21 @@ verbrachte viel Zeit am Haus. Trotzdem ergiebig:
|
|||||||
rechts: ARE-Typen 17/18/31 ab x~1700).
|
rechts: ARE-Typen 17/18/31 ab x~1700).
|
||||||
TODO naechste Aufnahme: bessere Sprung-Timeline (Saeulen-Gaps schaffen),
|
TODO naechste Aufnahme: bessere Sprung-Timeline (Saeulen-Gaps schaffen),
|
||||||
um bis zu den Gegner-Spawns und zum Levelende zu kommen.
|
um bis zu den Gegner-Spawns und zum Levelende zu kommen.
|
||||||
|
|
||||||
|
## 26.07.2026 (31) -- Karten-Fortschrittsanzeige + Level-Zusammenfassung (Stefans Durchspiel-Referenzen)
|
||||||
|
|
||||||
|
Stefan hat Level 1 im Original durchgespielt. Zwei Referenz-Screenshots:
|
||||||
|
|
||||||
|
1. LEVEL-ZUSAMMENFASSUNG (nach Levelende): Tafel mit SCORE, "MAXIMUM n /
|
||||||
|
GESAMMELT n" (Cerealien), "VITAMINE n", gruene Buchstaben-Kaestchen
|
||||||
|
(=> die A-O.BOBs sind VITAMIN-BUCHSTABEN! A, B1, C ... -- passt zu
|
||||||
|
VITAMIN.SRB und ARE-Typ 12?), "n x [Kopf]" (Bonusleben?), links/rechts
|
||||||
|
Gruppenbilder der 4 Charaktere. TODO: Screen nachbauen, sobald es
|
||||||
|
Levelende + Sammel-Zaehler gibt.
|
||||||
|
2. KARTE nach Durchspielen: erledigte Punkte werden BLAU (KARTE2), der
|
||||||
|
gelaufene Weg zwischen zwei Leveln = Spur kleiner ORANGER Punkte
|
||||||
|
(KARTE1) entlang der Original-Wegpunkte, noch nicht erreichte Level
|
||||||
|
bleiben UNSICHTBAR. UMGESETZT in worldmap.draw(): i < current = blau,
|
||||||
|
Pfade 1..current = Punktspur (Wegpunkte um Label-Offset -5,-16
|
||||||
|
versetzt), Rest unsichtbar. Interim: "erledigt" = links vom Cursor
|
||||||
|
(echtes Abschluss-Tracking kommt mit dem Levelende-Feature).
|
||||||
|
|||||||
+15
-2
@@ -120,6 +120,7 @@ class WorldMap:
|
|||||||
self.dot_big_on = intro.make_border_bg_transparent(assets.pcc_surface('KARTE0'))
|
self.dot_big_on = intro.make_border_bg_transparent(assets.pcc_surface('KARTE0'))
|
||||||
self.dot_big_off = intro.make_border_bg_transparent(assets.pcc_surface('KARTE2'))
|
self.dot_big_off = intro.make_border_bg_transparent(assets.pcc_surface('KARTE2'))
|
||||||
self.dot_small = intro.make_border_bg_transparent(assets.pcc_surface('KARTE3'))
|
self.dot_small = intro.make_border_bg_transparent(assets.pcc_surface('KARTE3'))
|
||||||
|
self.dot_trail = intro.make_border_bg_transparent(assets.pcc_surface('KARTE1'))
|
||||||
self.heads = {c: intro.make_border_bg_transparent(assets.pcc_surface(n))
|
self.heads = {c: intro.make_border_bg_transparent(assets.pcc_surface(n))
|
||||||
for c, n in HEAD_SPRITE.items()}
|
for c, n in HEAD_SPRITE.items()}
|
||||||
self.current = 0 # Segment 0 = W1L1 (DOSBox-Messung: Startpunkt (53,56))
|
self.current = 0 # Segment 0 = W1L1 (DOSBox-Messung: Startpunkt (53,56))
|
||||||
@@ -128,6 +129,11 @@ class WorldMap:
|
|||||||
canvas.blit(self.karte, (0, 0))
|
canvas.blit(self.karte, (0, 0))
|
||||||
head = self.heads.get(char, self.heads['TONY'])
|
head = self.heads.get(char, self.heads['TONY'])
|
||||||
head_phase = int(t / BLINK_SECONDS) % 2 == 0
|
head_phase = int(t / BLINK_SECONDS) % 2 == 0
|
||||||
|
# Original-Anzeigeregeln (Stefans Screenshot nach Durchspielen von
|
||||||
|
# Level 1): bereiste Wege = Spur kleiner ORANGER Punkte (KARTE1)
|
||||||
|
# entlang der Wegpunkte, erledigte/besuchte Level = BLAUER Punkt
|
||||||
|
# (KARTE2), aktueller Punkt = orange + blinkender Kopf, alles
|
||||||
|
# noch nicht Erreichte bleibt UNSICHTBAR.
|
||||||
for i, seg in enumerate(self.segments):
|
for i, seg in enumerate(self.segments):
|
||||||
if seg['label'] is None:
|
if seg['label'] is None:
|
||||||
continue
|
continue
|
||||||
@@ -138,8 +144,15 @@ class WorldMap:
|
|||||||
canvas.blit(self.dot_big_on, (bx + DOT_OFF[0], by + DOT_OFF[1]))
|
canvas.blit(self.dot_big_on, (bx + DOT_OFF[0], by + DOT_OFF[1]))
|
||||||
if head_phase:
|
if head_phase:
|
||||||
canvas.blit(head, (bx + HEAD_OFF[0], by + HEAD_OFF[1]))
|
canvas.blit(head, (bx + HEAD_OFF[0], by + HEAD_OFF[1]))
|
||||||
else:
|
elif i < self.current:
|
||||||
canvas.blit(self.dot_small, (bx + SMALL_OFF[0], by + SMALL_OFF[1]))
|
canvas.blit(self.dot_big_off, (bx + DOT_OFF[0], by + DOT_OFF[1]))
|
||||||
|
# Punktspur auf den bereisten Pfaden (Segmente bis zum aktuellen).
|
||||||
|
# Wegpunkte liegen auf der Stand-Linie; die Punktgrafik sitzt wie
|
||||||
|
# die Levelpunkte um (-5,-16) versetzt (Label-Offset des Binaries).
|
||||||
|
for i in range(1, self.current + 1):
|
||||||
|
for wx, wy in self.segments[i]['waypoints'][1:-1]:
|
||||||
|
canvas.blit(self.dot_trail,
|
||||||
|
(wx - 5 + SMALL_OFF[0], wy - 16 + SMALL_OFF[1]))
|
||||||
# waehrend des Laufens: Kopf entlang des Pfads
|
# waehrend des Laufens: Kopf entlang des Pfads
|
||||||
if walk_pos is not None:
|
if walk_pos is not None:
|
||||||
px, py = walk_pos
|
px, py = walk_pos
|
||||||
|
|||||||
Reference in New Issue
Block a user