Wie erkennt die Maus/Programm ein Land??



  • Hallo,

    ihr kennt doch alle Risiko, Junta (richtig geil),... halt Brettspiele.
    Und die haben doch meinst eine Karte - bei Risiko z.B. die Weltkarte:

    Wie würdet ihr das programmiertechnisch umsetzen, so dass das Programm erkennt, auf welchem Land der Mauszeiger sich gerade befindet??
    Ich meine die Länder sind ja nicht rechteckig.......

    Lenin



  • rein theorethisch: du kannst eine maske benutzen. z.B. ein bitmap, bei 8 bit farbtiefe kannst du also 255 länder + Wasser/NoMansLand definieren.
    weiterhin musst du die cursorposition erfassen, das entsprechende pixel in der bmp auslesen und den farbwert in ein land entschlüsseln. du kannst statt bitmap natürlich ein eigenes maskenformat schreiben, aber mit bitmap kannst du es einfacher editieren 🙂

    ist nur eine grundlegende idee, vermutlich gibt es eine bessere lösung...



  • Du kannst Polygone um das Land anlegen und dann schauen, ob in das Polygon des jeweiligen Landes geklickt wurde. Eine Idee wäre, du wanderst das Polygon im Uhrzeigersinn ab und schaust, ob der Punkt jeweils relativ gesehen rechts von der Gerade liegt.



  • Und dann passiert sowas: http://helium.ex0.org/karte.PNG (Mal eben mit Paint gemalt, nicht lachen.) Das Kreuz ist die Stelle, an der ich klicke, bechte beispielsweise die rot gezeichnete Grenze!



  • Dieser Thread wurde von Moderator/in kingruedi aus dem Forum Rund um die Programmierung in das Forum Spiele-/Grafikprogrammierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hi,

    ich würde einfach schnell eine zweite unsichtbare Map anlegen, auf der jedem Pixel einem Land zugeordnet wird, die müsste dann ja auch je nach Ländernanzahl nur wenige Bits pro Pixel speichern. Mit dieser Maske ist es zum einen schneller als mit den Polygonen (ok, das macht zwar kaum was aus, aber egal) und zudem viel einfach zu ändern und zu programmieren. (Die Maske zu erstellen ist auch einfacher, als eine Polygonliste zu erstellen)

    ChrisM



  • MaSTaH schrieb:

    Du kannst Polygone um das Land anlegen

    Aha... 😕 😉



  • Ist es überhaupt nötig, das Klicks im gesamten Land erkannt werden? Bei Risiko wüsste ich dafür keinen Grund.

    Bye, TGGC (Der Held ist zurück)


Log in to reply