Landkarte erstellen, aber wie ?

Posted By: Ascalon

Landkarte erstellen, aber wie ? - 04/05/10 16:47

Hallo, ihr kennt das bestimmt von vielen Strategiespielen.
Wie erstellt man am besten eine Landkarte, auf der man verschiedene Landteile bzw Provinzen selektieren kann und diese gegebenfalls einfärben kann. Ich hoffe ihr versteht was ich meine.
Wie kann man so etwas am besten bewerkstelligen, danke.
Posted By: Clemens

Re: Landkarte erstellen, aber wie ? - 04/05/10 18:02

Mit PANELs, jedenfalls wenn es sich um eine 2D-Darstellung handeln soll.
Eine Klick-Reaktion kannst du durch panel.on_click verursachen.
Und für das Positionieren der Objekte (Landkartenteile) bietet sich der Panel Editor an.

Für eine konkretere/passendere/brauchbarere Antwort musst du doch nochmal dein Anliegen detailreicher formulieren wink
Posted By: Ascalon

Re: Landkarte erstellen, aber wie ? - 04/05/10 18:39

panel können doch nur rechteckige formen "annehmen" oder hab ich da noch etwas nicht ganz verstanden ?
hatte mal eine methode im kopf, weiß aber nicht ob die funktioniert:
ich gebe den verschiedenen provinzteilen verschieden graufarben-abstufungen. durch drüberfahren der maus und der daraus gelesenen farbe, weiß man dann, welche provinz das ist. natürlich müsste das dann aber irgendwie unsichtbar sein, meine die graue karte. funktioniert das so überhaupt ?
Posted By: Lukas

Re: Landkarte erstellen, aber wie ? - 04/05/10 18:49

Wenn du für das Panel eine BMAP, mit Aplhakanal, also ein Bild mit durchsichtigen Teilen nimmst, kann ein Panel auch eine andere Form annehmen. Aber es ist schwierig zu überprüfen, ob die Maus dann über der eigentlichen Provinz ist oder über den unishctbaren Teil.
Das mit den Graustufen ist durchaus eine Alternative, aber du kannst auch ruhig Farben nehmen. Denn du wirst dieses Abstufungsbild ja wahrscheinlich mit einem Bildbearbeitungsprogramm machen wollen und da sind Farben wohl übersichtlicher.
Als sichtbares Bild kannst du dann entweder die komplette Karte - oder wenn du wert darauf legst, dass die Provinzen aufleuchten wenn du auf sie klickst oder mit der Maus drübergehst, mit den oben beschriebenen Bitmaps mit Alphakanal.
Posted By: Widi

Re: Landkarte erstellen, aber wie ? - 04/05/10 18:50

Du kannst den Alpha Cannel des Bildes für den Panel verwenden, um die ungewünschten Teile auszublenden.
Posted By: Clemens

Re: Landkarte erstellen, aber wie ? - 04/05/10 18:53

Ein Graustufenbild ist für solcherlei Dinge zumindest kein unübliches Verfahren, eine (Lite-C-)Funktion, die die Mauspos-Farbwerte ermittelt, ist mir allerdings unbekannt.

Aber ich würd sowieso nachwievor bei den PANELs bleiben. Denn die müssen insofern nicht rechteckig sein, dass du durchsichtlige Flächen per OVERLAY haben kannst.
Posted By: Clemens

Re: Landkarte erstellen, aber wie ? - 04/05/10 18:55

Ui, waren die anderen schneller ^^... und Lukas Einwand bezüglich der durchsichtigen Stellen und der Registierung derer ist nicht schlecht... sofern die "unsichtbaren" Stellen tatsächlich als Klickfläche gesehen werden!??
Posted By: Ascalon

Re: Landkarte erstellen, aber wie ? - 04/05/10 18:56

ja aber sobald die maus über den durchsichtigen bereich ist, is das panel schon anklickbar, somit würde ich unter umständen eine falsche provinz anklicken.
also hab mal einen kreis als panel gemacht und konnte den button auch drücken wo ich nur eine ecke berührt habe, die ja durchsichtig war. weißt was ich meine ?
Posted By: hopfel

Re: Landkarte erstellen, aber wie ? - 04/05/10 19:21

Schau mal im Manual unter:
pixel_for_bmap
pixel_to_vec
Dann als die Position vom Pixel die Position der Maus nehmen.
Mit dem kannst du die Farbe eines bestimmten Pixel auf einer Bitmap bestimmen. Ich habe keine Ahnung, was für eine Farbe bei Transparenz angezeigt wird, aber wenn du mit OVERLAY und schwarzen Flächen arbeitest, kannst du somit erkennen, ob sich die Maus über einem Transparenten oder nicht transparenten Teil befindet.
Hoffe , ich konnte helfen ^^
Posted By: Clemens

Re: Landkarte erstellen, aber wie ? - 04/05/10 19:35

Jo, pixel_for_bmap (auch soeben gefunden) und eine große Landkartenbmap die nach Provinzen farblich eingeteilt ist (+der originalen, die angezeigt wird), sollte ne gute Grundlage darstellen.
In der on_click-Funktion muss dann halt in ner großen Abfrage per Pixelfarbwert ermittelt werden, welche Provinz angeklickt wurde.
Posted By: AlexDeloy

Re: Landkarte erstellen, aber wie ? - 04/05/10 20:33

Wenn du Models statt Panels verwendest könntest du einen Outline Shader nutzen, bzw. dahingehend modifiziere, dass die Outline im inneren des Objektes liegt.

Vorteil: Du kannst Hohenstufen/Gelände andeuten
Nachteil: Mehr Aufwand, Polycount,...
Posted By: Ascalon

Re: Landkarte erstellen, aber wie ? - 04/06/10 07:02

ja das wäre natürlich sehr toll ! Aber mit Shader kenn ich mich momentan überhaupt noch nicht aus. Sowas versuch ich dann später erst mal, wenn ich besser bin.
Werd jetzt mal versuchen eine Landkarte zu erstellen.
Posted By: Clemens

Feature request: CLICKOVERLAY flag for panels - 04/06/10 12:08

Trotz der tollen Alternativansätze,
wundert es mich ja doch, dass es keinen Panel-Flag gibt, der bei Setzung von OVERLAY zusätzlich regelt, dass die unsichtbaren Stellen nicht auf Klicks reagieren...
Das müssen doch schon viele vermisst haben?!
© 2024 lite-C Forums