Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

18.04.2011, 17:08

Minimap Teil für Teil aufdecken

Hallo Spieleprogrammierer.de,

Wie kann ich eine Minimap realisieren die Teil für Teil aufgedeckt wird.
Also z.B. wenn eine Einheit lauft das sie dann den schwarzen Teil der in ihrem
Sichtfeld(Kreisförmig) liegt aufdeckt?
MfG Ninjasturm

----------------------------
System: Windows 7 x64
IDE: Visual Studio 2010 Ultimate
Engine: Ogre3D


Favorisierte Programmiersprache: C++
Sonstige Programmiersprachen: AutoIT, PHP, Javascript
Sonstige Auszeichnungsprachen: HTML, CSS
---------------------------

Lares

1x Contest-Sieger

  • Private Nachricht senden

2

18.04.2011, 21:13

Hmm ich weiß nicht ob es noch einfachere/bessere Lösungen gibt, aber ich würde das folgendermaßen machen:
-Der Spieler hat eine Liste aller Felder die er bereits betreten hat
-Jede Einheit des Spielers hat eine Liste der Felder die es momentan sieht

Jedesmal wenn sich eine Einheit bewegt, werden Die Felder in der Einheitenliste mit den Feldern in der Spielerliste
verglichen. Wurden neue Felder erkundet,werden diese in die Felderliste des Spielers eingetragen,
alte Felder werden aktualisert.

Auf der Minimap könnte man dann für jedes Feld ein kleines Rechteck zeichnen, dass je nach Inhalt des Feldes
eine andere Farbe hat (schwarz = nicht erkundet, rot=Gegner, etc.)


Die Bestimmung der Felder für die Einheitenliste kannst du entweder mit
-> Kollision (Radius um Einheit) oder aber mit
-> nächsten Partner lösen:
- Einheit steht auf Feld x
- Feld x kennt die vier Felder die um es herum liegen
- Felderliste der Einheit greift auf diese Information zu


Wie gesagt, das wären meine Ideen, wie ich an die Sache rangehen würde. Gibt aber garantiert noch Raum
für Verbesserungen xD

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

18.04.2011, 21:29

Uhh...normalerweise nimmt man dafür eine "overlay" Textur die dann auch einfach über der eigentlich Minimap gezeichnet wird. Google doch einfach mal nach fog-of-war implementation. Da findet man einiges zur genauen Umsetzung, aber im Prinzip nimmt man einfach eine Textur, füllt sie mit schwarz und zeichnet dann auf dieser textur um jede Einheit einen Sichtbereich mit z.b. durchsichtiger Farbe. Diese Textur wird dann über die Minimap gelegt. Analog läuft es für die normale Ansicht.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

4

18.04.2011, 21:31

Ich würde das nicht in einer Liste speichern, sondern einfach jedem Tile eine bool geben ob es eben schon entdeckt wurde oder nicht.
Bei den Einheiten würde ich auch nicht viel machen, sondern einfach die bool Variable jedes Tiles, das von der Einheit gesehen wird auf true setzen - fertig.

lg chaia

5

18.04.2011, 22:58

Ich würde das wie nox mit einer Textur machen, die immer über die Minimap gezeichnet wird und die am Anfang schwarz ist. Immer wenn sich der Spieler dann bewegt zeichnest du einen weißen Kreis an der Position des Spielers über diese Textur. Das hat den Vorteil, dass der aufgedeckte Teil kreisförmig ist.

6

19.04.2011, 11:33

Danke für eure Tipps.
MfG Ninjasturm

----------------------------
System: Windows 7 x64
IDE: Visual Studio 2010 Ultimate
Engine: Ogre3D


Favorisierte Programmiersprache: C++
Sonstige Programmiersprachen: AutoIT, PHP, Javascript
Sonstige Auszeichnungsprachen: HTML, CSS
---------------------------

Werbeanzeige