Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Städteraten Problem (https://www.delphipraxis.net/160341-staedteraten-problem.html)

bert939 9. Mai 2011 11:36

Städteraten Problem
 
Hallo liebe Programmierer!


Ich bin gerade dabei das Spiel Städteraten zu programmieren. Das Spiel ist eigentlich bekannt aus "Schlag den Raab", bei dem der Spieler z.B gefragt wird wo Hamburg liegt und dies dann suchen und anklicken muss. Im Anschluss wird dann gezeigt wie weit man davon entfernt war.

Im Moment weiß ich aber gerade echt nich wie ich das umsetzen soll. Wäre cool wenn mir jemand helfen könnte! (:

Satty67 9. Mai 2011 12:15

AW: Städteraten Problem
 
Zitat:

Zitat von bert939 (Beitrag 1099673)
Ich bin gerade dabei das Spiel Städteraten zu programmieren.

Lässt vermuten, Du hast schon etwas... dann fehlt die eine genauere Angabe bei welchem Problem es mit dem Umsetzen hängt.

Falls Du noch garnichts hast (ausser dass, was man mit dem FormDesigner machen kann), kommt es auf die Grundkenntnisse an, ein einfacher Weg wäre:

- Image mit Kontinent(en) oder nur Land aufs Formular
- Passend dazu eine Array oder Objektliste mit Städtename/Koordinate
- Bei MouseClick wird Wegstrecke zur gesuchten Stadt berechnet

Mit mehr Kenntnissen kann man auch mit SVG-Dateien arbeiten und MouseClick gleich in GeoKoordinaten umrechnen, dann wäre das erweitern um weitere Städte am einfachsten.

bert939 9. Mai 2011 12:25

AW: Städteraten Problem
 
Also ich hab eigentlich nur schon ne Karte als .png Bild.
Aber ich weiß jetzt einfach nicht wie ich beginnen soll und wie es dann funktionieren soll.

Wie bekomm ich die Koordinaten der Städte?

Satty67 9. Mai 2011 12:33

AW: Städteraten Problem
 
Also ganz einfach...

Dann ein Bild nehmen, das alle gewünschten Städte enthält. Per Klick auf die Stadt die x/y Koordinate auslesen und unter Stadtnamen speichern (sozusagen ein Konfigurationsmodus). Für den Anfang vieleicht einfach eine INI-Datei zum Speichern nehmen.

Fürs Spiel selbst dann eine Version des Bildes, bei dem man z.B. mit Paint.NET die Städte zuvor ausradiert hat. Dort dann x/y des MouseClick mit x/y der gespeicherten Stadt verrechnen.

***

Etwas mehr Kenntnisse bräuchte man, wenn man die x/y Position/Klicks der Karte in GeoKoordinaten umrechnet. Die Karte müsste dazu auch genau genug sein.

Die Koordinaten der Städte bekommt man dann via GoogleMaps oder Wikipedia etc. (legt man sich aber auch zuvor eine Liste an)

himitsu 9. Mai 2011 12:52

AW: Städteraten Problem
 
dort gibt es auch genug Städte
www.openstreetmap.de

jfheins 9. Mai 2011 13:40

AW: Städteraten Problem
 
ich würde mir zuerst eine Karte suchenm, die (ganz wichtig) eine einfache Projektion benutzt. Kanidaten sind z.B. Mercator Projektion. ( Formeln siehe: http://de.wikipedia.org/wiki/Mercator-Projektion )

Dann gibt es 2 Möglichkeiten:
1. Du hast eine Liste von Orten, die erraten werden sollen mit geographischen Koordinaten. Dann lässt du die Kanidaten raten, rechnest die Koordinaten um in Bildkoordinaten und berechnest mit Pythagoras wie weit sie daneben geklickt haben. (Ergebnis in Pixeln)
2. Du berechnest zu jedem Klick die geo. Koordinaten und berechnest dann die Distanz entlang der Erdoberfläche um die Sie daneben geklickt haben. (Ergebnis in Kilometern)

Du brauchst also nur ein eine Richtung umrechnen. Falls du Mathe nicht so gerne magst, empfehle ich Variante 1.

Die geo. Koordinatenzu Pixelkoordinaten kannst du mit der Wikipediaformel umrechnen, die Ränder der Karte (falls du keine Weltkarte benutzt) musst du aber ebenfalls berücksichtigen.

Satty67 9. Mai 2011 13:41

AW: Städteraten Problem
 
GeoKoordinaten (statt statischem x/y auf Karte) zu verwenden hätte auch noch den Vorteil, dass man die Städteliste universell für jede Karte verwenden kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz