Hallo Leute,
ich habe aus Jux und Tollerei angefangen, Risiko zu programmieren. Ja, dieses Thema findet sich bei der Suche sehr häufig und auch ich weiß, dass es nichts großes ist. Ich für meinen Teil will das jedoch durchziehen als auch einen Multiplayer einbauen.
Ich bin noch in der "Gedankenphase" und überlege mir, welche Probleme auftauchen und wie man diese lösen kann.
Ein Problem ist:
Wie kann ich erkennen, dass eine bestimmte Fläche angeklickt wurde?
Bei einer quadratischen oder kreisförmigen Fläche würde ich das rausbekommen.
Doch wie sieht dies bei .... "Fleck"-Förmige Fläche aus?
Wenn wir uns z.B. Deutschland als Grundriss vorstellen, wie kann ich "elegant" lösen, dass nun Deutschland angeklickt wurde?
Elegant wird hier betont, denn eine "naja" Lösung hätte ich, nämlich Deutschland in mehrere Quadrate teilen und somit die "Fleck"-Fläche mit Quadraten füllen, um so rauszubekomen, ob der Mausklick in Deutschland erfolgt.
Gibt es jedoch eine elegante Lösung, sodass ich nicht alle "Hilfsquadrate" überprüfen muss als auch wirklich die "ganze" Fläche abdecke?
Ich hab mir auch schon überlegt, ob ich mir die Begrenzungslinie als Punktmenge vorstelle und dies irgendwie speicher und dann über irgendeinen Algorithmus herausfinden, ob der Mausklick innerhalb liegt, jedoch fehlt mir hierfür ein mathematisches Verständis oder gar ein Stück realistisches Denken?
Eine Idee, die mir gerade beim schreiben gekommen ist:
Ein 2D Array mit im Hintergrund, wo jedes Element ein "Punkt" der gesamt Karte darstellt und wenn man das Spiel lädt, füllt er das Array mit Zahlen, welche z.B. symbolisieren "Das ist Deutschland".
So müsste man "ja nur" im Array nachschauen, ob der Mausklick in Deutschland erfolgt oder nicht.
Hier jedoch müsste man ja irgendwie speichern, wo Deutschland intern liegt. Also beim Laden des Programmes müsste dieses Array dann gefüllt werden. Hier würde es interessant sein, denn ich will ja nicht das Array serialisieren oder so, sondern Datensparend speichern ^^
Hierfür könnte man ja in der Länder Datei speichern den jeweils linken Punkt und dann den jeweils rechten Punkt der Begrenzungslinie, sodass ich Zeilenweise von links nach rechts das Array fülle.
Mmm...die Idee gefällt mir, doch gibt es wie gesagt eine elegantere Lösung?
Mfg
Mel
PS: Danke für das eventuelle Durchlesen und das Beantworten
ich habe aus Jux und Tollerei angefangen, Risiko zu programmieren. Ja, dieses Thema findet sich bei der Suche sehr häufig und auch ich weiß, dass es nichts großes ist. Ich für meinen Teil will das jedoch durchziehen als auch einen Multiplayer einbauen.
Ich bin noch in der "Gedankenphase" und überlege mir, welche Probleme auftauchen und wie man diese lösen kann.
Ein Problem ist:
Wie kann ich erkennen, dass eine bestimmte Fläche angeklickt wurde?
Bei einer quadratischen oder kreisförmigen Fläche würde ich das rausbekommen.
Doch wie sieht dies bei .... "Fleck"-Förmige Fläche aus?
Wenn wir uns z.B. Deutschland als Grundriss vorstellen, wie kann ich "elegant" lösen, dass nun Deutschland angeklickt wurde?
Elegant wird hier betont, denn eine "naja" Lösung hätte ich, nämlich Deutschland in mehrere Quadrate teilen und somit die "Fleck"-Fläche mit Quadraten füllen, um so rauszubekomen, ob der Mausklick in Deutschland erfolgt.
Gibt es jedoch eine elegante Lösung, sodass ich nicht alle "Hilfsquadrate" überprüfen muss als auch wirklich die "ganze" Fläche abdecke?
Ich hab mir auch schon überlegt, ob ich mir die Begrenzungslinie als Punktmenge vorstelle und dies irgendwie speicher und dann über irgendeinen Algorithmus herausfinden, ob der Mausklick innerhalb liegt, jedoch fehlt mir hierfür ein mathematisches Verständis oder gar ein Stück realistisches Denken?
Eine Idee, die mir gerade beim schreiben gekommen ist:
Ein 2D Array mit im Hintergrund, wo jedes Element ein "Punkt" der gesamt Karte darstellt und wenn man das Spiel lädt, füllt er das Array mit Zahlen, welche z.B. symbolisieren "Das ist Deutschland".
So müsste man "ja nur" im Array nachschauen, ob der Mausklick in Deutschland erfolgt oder nicht.
Hier jedoch müsste man ja irgendwie speichern, wo Deutschland intern liegt. Also beim Laden des Programmes müsste dieses Array dann gefüllt werden. Hier würde es interessant sein, denn ich will ja nicht das Array serialisieren oder so, sondern Datensparend speichern ^^
Hierfür könnte man ja in der Länder Datei speichern den jeweils linken Punkt und dann den jeweils rechten Punkt der Begrenzungslinie, sodass ich Zeilenweise von links nach rechts das Array fülle.
Mmm...die Idee gefällt mir, doch gibt es wie gesagt eine elegantere Lösung?
Mfg
Mel
PS: Danke für das eventuelle Durchlesen und das Beantworten