08-12-2007, Saturday-16:59:41
Zitat:Original von benedikt
@Prinegon
so wie ich das sehe - technisch dermaßen aufwendig, dass Aufwand und Ergebnis in keinem Verhältnis stehen.
Halte ich in dem Fall nicht für übermäßig aufwendig. Am Anfang einer PPM-Datei stehen ihre Breite und Höhe, die Farbwerte sind daraufhin koordinatengebunden gespeichert (also jeder Bildpunkt wird Zeile für Zeile durchgegangen und der RGB-Wert angegeben). Somit ist also jeder Punkt auf der Karte einer XY-Koordinate zuordbar (und nicht etwa eine Komprimierung der Bilddateien würde dieses erschweren).
Insofern kann man leicht XY-Koordinaten für Orte auf der Karte angeben. Wenn man also zum PPM-Bild zusätzlich eine gleichnamige TXT-Dateu anbietet, die wie folgt aussähe:
Code:
NameStadt1 Positionx Positiony
NameStadt2 Positionx Positiony
NameStadt3 Positionx Positiony
,wobei im Spiel davon ausgegangen wird, das (Positionx, Positiony) der Standort des Rathauses einer Stadt ist, reicht das als Info schon aus. Mehr ist nicht notwendig.
Im Spiel selbst muß dann halt zusätzlich beim Erstellen einer geladenen Karte diese TXT-Datei eingelesen werden. Die Orte werden, wie bisher auch, zufällig gewählt. Wenn man dem Ort aber dann einen Namen gibt, berechnet man die Position des Rathauses im Spiel (die wahrscheinlich sowieso schon berechnet ist), vergleicht sie mit den in der TXT angegebenen Orten, berechnet den Abstand zwischen den 2 Orten ((Abstand von 2 Punkten im R2 berechnen ist eine simple mathematische Operation), wählt den Stadtnamen mit dem geringsten Abstand. Zuletzt überprüft man noch, ob der Stadtname bereits im Spiel existiert, wenn ja, nimmt man den nächstentfernteren Punkt, usw.
Existiert zu einer vorgegebenen Karte diese TXT-Datei nicht, bzw. kann sie nicht gelesen werden (da der Kartenersteller einen Fehler gemacht hat), werden die Städte wie bisher generiert.
Vom Aufwand her durchaus umsetzbar, wahrscheinlich noch nicht einmal sonderlich schwierig. Fehleranfälligkeit ist nicht vorhanden. Selbst wenn z.B. der Kartenersteller bei der Deutschlandkarte Hamburg mitten in die Ostsee gepackt hätte (z.B. Hamburg liegt auf Position (130,90) auf der Karte, der Ersteller hat es jedoch mit den Werten (300,70) angegeben, so würde ja keine Stadt im Wasser generiert werden (weil die TXT-Datei mit der Städtegenerierung ja nichts zu tun hätte, sondern nur mit der Benennung), sondern als schlimmster Fall halt eine Stadt mit einer Position wie Rostock Hamburg benannt werden.
Wenn man denn konfortabel sein möchte, schreibt man noch ein kleines Tool, welches PPM-Karten einlesen und darstellen kann, auf dem man die Karte anklicken und direkt auf der Karte Orte eintragen kann. Dieses Tool erzeugt dann die TXT-Datei. Dann braucht der Kartenersteller nicht jede X-Y-Position per Hand raussuchen. Aber auch das wäre nicht zwingend zur Umsetzung der Idee notwendig, sondern nur ein Bonus.
Wenn du einen Engel suchst und nur nach den Flügeln ausschau hälst, mußt du dich nicht wundern, an eine dumme Gans zu geraten.