Hallo zusammen,
ich bin gerade dabei ein kleines Spielchen in C++ zu schreiben.
Bisher funktioniert auch alles wunderbar, aber jetzt bin ich auf zwei Konzeptprobleme gestoßen.
1. Landschaft
Problem 1 geht darum, wie die Landschaft, d.h. der Boden angezeigt werden soll.
Befindet sich die aktuelle Karte im Weltall, dann ist das kein Problem. Einfaches Parallaxenscrolling und gut.
Auf Planeten / Asteoriden / etc. möchte ich den Boden mit kleinen Kacheln (Tiles) darstellen.
Folgende Überlegungen:
Ich habe mind. 5 verschiedene Tile-Typen. Erde, Gras, Geröll, Beton, und "nichts" (Loch im Asteroiden / Weltraum / einfach kein Boden)
Ich könnte jetzt jeder Kachel des Spielfeldes einen Tiletype zuordnen und zeichnen. Dann habe ich aber ein extrem Kantiges Spielfeld und keine Übergänge.
Siehe:
horschdware.de/sc/shot-16-06-07-a.jpg
Also muss jeder Tiletype in 9 Arten vorkommen: Oben links, oben, oben rechts, mitte links, mitte, ....

, Annahme: jedes Kästchen sei ein Quadrat)
Dann hätte ich aber folgendes Problem: Ich müsste ja ein solches Set (wie in der Grafik) für jede Art von Übergang zu einem anderen Tile erstellen. D.h. von Erde->Gras, Gras->Erde, Erde->Geröll,Geröll->Beton,...
Das wären bei 5 versch. Tiletypes wenn ich richtig rechne 5*4*9 = 180 Kacheln. Mindestens!
Ist das normal so oder habe ich mir da einen ziemlich umständlichen Weg herausgesucht?
2. Menüstruktur
Ich stelle mich gerade etwas ungeschickt mit den Menüfenstern an.
Das Programm startet und öffnet Formular 1, Hauptmenü. Von hier aus kann ich in Unetermenüs wie "Multiplayer", "Singleplayer", etc...
Dafür öffne ich aber jedes Mal ein neues Fenster und schliesse das alte. Das finde ich sehr unschön, da so jedes Menü eine eigene Fensterposition erhalten könnte (wenn z.B. der User die Fenster verschiebt).
Ich habe mir schon überlegt, nur ein einziges Fenster zu nehmen und die Menüs durch ein Menüobjekt, d.h. eine eigene Klasse darzustellen. Jetzt wollte ich mal hören: Was gibt es hier an guten Ansätzen? Wie erstelle ich eine "gescheite" Menüstruktur, bei der nach Möglichkeit nur ein Fenster verwendet wird?