Klickbares Hex-Gitter in c # .net


7

Ich möchte ein Windows Form-basiertes Abenteuerspiel erstellen, bei dem der Spieler auf eine statische Karte auf ein Hex klickt, um seine nächste Begegnung aufzurufen. Ich habe die Karte bereits und plane, sie zu scannen und in eine BMP-Datei zu konvertieren. Mein Problem ist, dass ich nicht sicher bin, wie ich das Kartenbild mit dem Spielcode verknüpfen soll. Wenn ich mich nicht irre, denke ich, dass ich eine Art Imagemap-Steuerung verwenden muss. Wenn dies der Fall ist, muss ich jedes Hex einzeln zeichnen, oder gibt es eine Möglichkeit, die gesamte Karte in großen Mengen zu zeichnen? Ich habe diesen Artikel gefunden, bin mir aber nicht sicher, ob er für das, was ich tun möchte, relevant ist oder nicht. Ich suche nur nach allgemeinen Informationen oder Links zu relevanten Artikeln. Vielen Dank.


Ich denke, dieser Link, den Sie gepostet haben, erklärt alles ganz gut. Mit der dort erläuterten Mathematik sollten Sie in der Lage sein, herauszufinden, auf welches Sechseck der Benutzer auf Ihre Karte geklickt hat. Das Zeichnen der einzelnen Kacheln bietet Ihnen möglicherweise mehr Flexibilität als das Verwenden eines großen gescannten Bildes. Denken Sie nur an Fälle, in denen Sie eine Kachelgrafik austauschen müssen?
Bummzack

Ich habe vergessen zu erwähnen, dass die Karte bereits ein Hex-Gitter enthält. Es ist wirklich nur eine kleine Karte - nur etwa 25 x 10 Felder, und es hat handgezeichnetes Gelände, Ortsnamen usw. Ich bin mir nicht sicher, ob sich dadurch etwas ändert oder nicht.
Raven13

Antworten:


15

Ich mag Amits Spielprogrammierungsinformationen sehr und es gibt einen ganzen Abschnitt über Sechseckgitter . Vielleicht finden Sie einen dieser Links informativ?

Hier ist die Liste der Links, die er gibt:

Ich entschuldige mich, wenn dies nicht hilfreich ist. Windows Form ist nicht die ideale Plattform, um ein Spiel zu entwickeln, aber ich gehe davon aus, dass Sie ein Bild pro Rasterquadrat haben und ihm ein OnClick-Ereignis geben würden. Es würde jedoch das Problem überlappender Ecken geben ... (die transparenten Ecken des quadratischen Bildes, auf dem sich das Gitterbild befindet). In einem herkömmlichen Spiel würden Sie die obigen Informationen verwenden, um herauszufinden, wie Klickkoordinaten (Bildschirmbereich) in die hexagonalen Gitterkoordinaten (die in Ihrem Link gut angegeben sind) übersetzt und dann entsprechend behandelt werden.


Diese Seite war für mich von unschätzbarem Wert, als ich ein Hex-Raster in C # / WPF implementierte. Viele gute Infos da.
Mike Strobel

Wow, Amit geht immer noch! Ich habe das vor mehr als 10 Jahren benutzt, um A * in der Schule zu lernen.
Tenpn

+1 für eine Explosion aus der Vergangenheit. Ich erinnere mich, dass ich mir diese Tutorials Ende der 90er Jahre angesehen habe. Toller Link!
Larry Smithmier
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.