Zum Beispiel könnte ich ein dynamisches Pointer-Array initialisieren, welches mit ReDim() nach Bedarf erweitert werden kann: jeder Pointer im Array zeigt auf einen bestimmten Actor; so wäre ein *effectPointer.ACTOR()-Array ebenso denkbar wie ein *monsterPointer.ACTOR()-Array. Und anstatt in den entsprechenden Prozeduren die gesamte Actor-Liste durchzuklappern, könnte ich nur das *monsterPointer()-Array durchlaufen, und mir nach jedem Schritt mit ChangeCurrentElement(actor(),*monsterPointer(i) ) die jeweiligen Elemente gefiltert nach Typ "nach vorne" holen.

Ich habe unten eine .exe zu Testzwecken verlinkt. Wer Lust hat, ist herzlich eingeladen, ein bißchen damit rumzuspielen und Feedback zu geben, wenn was nicht richtig funktioniert.

Es gibt auch noch keine KI für die Monster; sie sind alle friedlich, und lassen sich gerne von euch töten.

STEUERUNG
- Linksklick auf freies Feld = Bewegen
- Rechtsklick = Interaktion (Türen öffnen/schließen, Monster angreifen)
- Mauszeiger an Ränder bewegen = Map scrollen
- Leertaste drücken, bzw. Mauszeiger 0.5 Sekunden auf Spieler ruhen lassen = Viewport auf Spieler zentrieren
- ESC = Spiel beenden und Fenster schließen
Normale Monster haben 5 Lebenspunkte, Fliegende Monster 3.
Nahkampf macht 1-3 Schadenspunkte, Fernkampf immer nur 1 Schadenspunkt.
DOWNLOAD