Archiv verlassen und diese Seite im Standarddesign anzeigen : Minimap
Icedragon3000
09.01.2010, 22:07
Hallo zusammen, ich wollte mal fragen, ob ihr mir bei meinem kleinen Problem helfen könnt. Ich hab den RPG Maker 2k.
Es geht darum, dass auf meiner Minimap sich die Position des Helden nicht auf der Minimap sondern auf der großen Map befindet. Ich habe gelesen, dass man da die Position ausrechnen muss. Dass hab ich gemacht, aber irgentwo muss ich doch die Zahl reinschreiben, oder? Ich weiss aber nicht wo.
Ich kenne mich noch nicht so gut mit Variablen aus, deshalb bitte ich, es ganz leicht zu erklären.:o
Also wie schon richtig erkannt, solltest du das in Variablen speichern. ^^
Hier mal das Grundlegendste zu Variablen:
Der Maker bietet eine Variablendatenbank, in der (nahezu) beliebig viele Variablen gespeichert werden können - oder genauer: Variablenwerte.
Stell dir eine Variable als einen Hebel vor, den man auf verschiedene Positionen stellen kann, die numeriert sind. So gibt es bei jedem Hebel "Position 0", "Position 1" usw. Auch negative Positionen gibt es. Da das ganze eine Variablendatenbank ist, existieren ganz viele Hebel. Jeder Hebel sieht gleich aus, hat also die gleichen Einstellmöglichkeiten, zB. "Position 5".
Man kann jeden Hebel unabhängig voneinander einstellen (zB. Hebel A auf "Position 3" und Hebel B auf "Position 7") und damit man nicht durcheinanderkommt, gibt man jedem Hebel eine Beschriftung - den "Variablennamen". Somit kann man hunderte von Hebeln beliebig einstellen, wobei der eigentliche Sinn ist, dass diese Hebel auf ihrer Position bleiben, bis du als Entwickler sie umstellst, bzw. sagst dass sie zu einem bestimmten Zeitpunkt umgestellt werden sollen.
Da die Hebel auf Positionen mit Werten stehen, kann man bei diesem Umstellen die Mathematik ganz gut gerbrauchen. So lässt sich beispielsweise ein Hebel um 2 Positionen nach oben stellen (Variablenwert +2). Oder man guckt sich zwei Hebel an und verwendet beide Positionen, zB. Position Hebel A um die Anzahl der Positionen nach oben stellen, auf die Hebel B eingestellt ist (Variablenwert A += Variablenwert B. Achtung: "+=" bedeutet, dass A etwas dazuaddiert bekommt, nämlich in diesem Fall den Wert von B).
Im Maker lassen sich die Variablen mit dem Befehl "Change Variable" ändern. Wenn du noch nicht weißt, wie man Events mit Befehlen füllt, sofort antworten. :)
Ruft man den Befehl auf, kann man oben die Variable aussuchen die geändert werden soll. Darunter gibt man an, was mit dieser Variable passiert, also wie mit ihr gerechnet wird. Durch Aneinanderreihung von Variablenveränderungen lassen sich komplizierte Berechnungen anstellen, wie z.B. das Berechnen der Position auf einer Minimap. ;)
Also das alles hat jetzt erstmal nichts mit deiner eigentlichen Frage zu tun gehabt. Aber es ist wichtig, dass du das Grundprinzip vollständig verstehst. Gerade bei grafischen Anwendungen wie Minimaps liegt das eigentliche Problem beim Vorstellen, wie man den Zoom berechnet. Schließlich ist eine Minimap nichts anderes als eine herausgezoomte Ansicht der tatsächlichen Map. Dabei ist es mitunter hinderlich, wenn man mehr mit dem Variablen als mit der Idee zu kämpfen hat.
Zur Problemstellung an sich:
Eine Minimap ergibt sich über den Zoomfaktor, den man am besten als Wert in einer Variable speichert. Dann braucht man den Strahlensatz, der mit Hilfe des Zoomfaktors aus der Mapposition die Minimapposition erzeugen lässt.
Hierbei liest man die x-Achse und die y-Achse des Helden und speichert sie jeweils in eine Variable. Dies macht man bei "Change Variable" über die Wahl von "Set" in der Mitte (bei Set) und weiter unten dem Eintrag "Event -> Hero -> x-Coordinate" (bzw. y-Koordinate). Das heißt 2 Befehle füllen 2 Variable mit 2 wichtigen Informationen, die zusammen die Position des Helden wiedergeben.
Danach kommt der Rechenteil. Das ist der eigentliche Kern. Man verstellt die Variablen bis sie statt der Heldposition die Pixelposition angeben, die auf der Minimap als Punkt markiert wird. Du sagtest, dass du die Rechnung schon hättest. Am besten fragst du dazu nochmal nach, falls du dir unsicher bist, dann lässt sich auch das ganz einfach erklären.
Wenn die Rechnung abgeschlossen ist (die ich jetzt übersprungen habe - ein häufiges Change Variable, dazu wenn nötig nachfragen...) dann muss noch der berechnete Punkt auf dem Bildschirm dargestellt werden. Das wird mit dem Befehl "Show Picture" gemacht, der ein Bild an einer genannten Pixelposition darstellt. Entweder gibt man dort eine feste Zahl ein, oder verwendet zwei Variablen für die x-Achse und y-Achse. In deiner Situation braucht man die Variablenversion, da sich die Position des Punktes mit der Position des Helden verändert. Es wird ständig neu berechnet und dargestellt. Diese ständigen Wiederholungen passieren automatisch, wenn du den Code in ein dafür eigenes Event schreibst und dieses auf "Parallel Process" stellst unten links im Eventfenster).
Der Maker hat eine Auflösung von 320 mal 240 Pixel und beginnt in der oberen linken Ecke mit null zu zählen. Das heißt bei Show Picture an der Position x=10 und y=10 wird das Bild weit oben links angezeigt, bei x=160 und y=120 genau in der Mitte des Bildes und bei Werten richtung x=320 und y=240 immer weiter unten rechts. Darauf aufbauend muss die Berechnung angestellt werden.
Jetzt heißt es, dass du dir alles durchliest xD, den interessantesten Punkt heraussuchst und ausprobierst. Und ganz wichtig ist, dass du bei jedem noch so kleinem Problem sofort nachfragst. Mein Text überspringt die eigentliche Dinge und beschreibt nur das Drumherum. Genaueres kommt erst, wenn du uns hier im Thread darauf ansprichst. :D
http://www.multimediaxis.de/images/smilies/old/s_017.gif CapSeb http://www.multimediaxis.de/images/smilies/old/s_065.gif
Icedragon3000
10.01.2010, 20:36
Das versteh ich jetzt, aber dass Problem liegt darin, dass ich nicht weiss, we ich die Variable einstellen soll, damit sich der Punkt auf der Minimap bewegt.
Ich denke, das ganze über Ausprobieren zu lösen, ist in deinem Fall besser als eine Formel an den Kopf geklatscht zu bekommen. Deswegen versuche einfach mal folgende Schritte nachzubauen und guck' was passiert. Wenn du nicht weiterkommst, einfach wieder melden. ^^
1. Speichere die Position des Helden wie im ersten Post beschrieben in zwei Variablen (per "Change Variable" eine Variable für die x-Achse, eine für die y-Achse) und gib ein Picture an der Position der beiden Variablen aus ("Show Picture" mit "Show Position"->"By Variable"). Die drei Befehle in ein Event schreiben, das auf "Parallel Process" steht.
Jetzt müsste sich beim Spielen oben links in der Bildschirmecke das benutze Bild zeigen und bewegen, wenn man mit dem Held läuft.
2. Statt dem Befehl "Show Picture" kann man auch "Move Picture" verwenden. Der Befehl hat den Vorteil, dass das Bild nicht dauernd neu geladen wird und sollte deswegen verwendet werden. Aber bei "Move Picture" kann man nicht das Bild aussuchen sondern nur die Bildnummer. Das bedeutet, dass ein Bild bewegt werden soll, das über "Show Picture" schon angezeigt wurde und dort eine Nummer bekommen hat (nämlich von dir - oben links in "Show Picture").
Also lass ein Bild einmal anzeigen per "Show Picture" in einem neuen Event, das sich nicht wiederholt (sonst wiederholt sich ja der Befehl dauernd, wie beispielsweise bei "Parallel Process"). In dem Event aus 1. löscht du den "Show Picture"-Befehl und ersetzt ihn durch "Move Picture" mit der entsprechenden Bildnummer. Jetzt kannst du unten in "Move Picutre" auch einstellen, wie lange es dauert einmal zu aktualisieren. Gut wäre zB. eine zehntel Sekunde als Wert.
Der Effekt beim Spielen sollte der gleiche sein wie in 1.
3. Die bisherige Variante der Minimap ist recht klein, sprich das Bild bewegt sich kaum. Hier kannst du einen Zoomfaktor verwenden. Dazu nimmst du eine neue Variable und setzt sie per "Change Variable" auf den gewünschten Wert. Benenne die Variable so, dass du weißt was sie enthält (zB. Zoomfaktor). Es eignet sich, diesen Befehl in das Event zu "Show Picture" zu schreiben, da er sich auch nicht wiederholen soll. Jetzt muss die Variable auch noch verwendet werden. Dazu schreibst du im sich wiederholenden Event unter die drei bisherigen Befehle zwei "Change Variable"-Befehle. Der erste multipliziert den Wert der x-Position mit dem Zommfaktor (x-Position *= Zoomfaktor, wobei "*=" soviel bedeutet wie "mal-gleich", also x-Position wird mal den Zoomfaktor genommen) - der zweite Befehl multipliziert den Wert der y-Position mit dem Zoomfaktor (gleiches Schema).
Im Spiel ist jetzt der Punkt mehr in Bewegung und man erkennt einen Einzelnen Schritt besser. Achtung: Die Minimap ist dadurch natürlich größer und zwar um den Faktor "Zommfaktor". Steht Zoomfaktor zB. auf 3, dann ist die Minimap 3mal so groß, obwohl sie weiterhin oben links in der Ecke mit den Koordinaten 0-0 beginnt.
4. Die Minimap lässt sich jetzt zwar beliebig riesig zerren, aber nicht sehr genau einstellen. So kann man den Zoomfaktor beispielsweise nicht auf 2,4 stellen. Dazu baut man sich einen eigenen Prozentwert. Wie geht das? Man setze den Zoomfaktor nicht auf kleine Werte sondern auf einen Wert größer 100. Man denkt sich, dass es Prozent sind. So entspricht Zoomfaktor=150 dem Prozentwert 150%. Damit aus der Zahl 150 auch tatsächlich 150% werden, muss man durch 100 teilen. Dazu schreibt man in das sich wiederholende Event wieder zwei "Change Variable" und zwar unter das "*= Zoomfaktor". Einmal natürlich für den x-Wert (x-Position /= 100, wo "/=" durch-gleich bedeutet, also x-Position wird durch den Zoomfaktor geteilt) und einmal für den y-Wert (x-Position /= 100). Beispiel: Man setzt in dem sich nicht wiederholenden Event Zoomfaktor auf 150. Im sich wiederholenden Event wird die Position mal dem Zoomfaktor genommen und dann durch 100 geteilt, das hat den gleichen Effekt wie mal 1,5 (mathematisch das gleiche wie 150%) aber umgeht ein vorzeitiges Runden.
Wenn man alles richtig gemacht hat, dürfte der Zommfaktor jetzt genauer sein. Stellt man ihn auf 200 passiert das gleiche, wie wenn man ihn nach Schritt drei auf 2 gestellt hätte (immer das hundertfache einstellen).
5. Um zu sehen wo das Pciture alles hinwandert kann, kann man beim Spielen bis zu den Ecken der Map laufen. In der oberen linken Ecke ist das Picture ganz oben links halb verschwunden. Läuft man weiter nach unten rechts, wandert auch das Picture hinterher. Man kann es sich aber auch leichter machen, indem man überlegt wo das Pciture hin kann, also wie groß die Minimap ist. Sie hat die Größe der Original-Map in Kästchen gemessen (denn jedes Kästchen ist ein Pixel der Minimap) aber das ganze noch gestreckt um den Zoomfaktor geteilt durch hundert, wegen den Prozenten. Hat man Schritt 4 ausgelassen, ist die Map nur um den Zoomfaktor gestreckt. Die Minimap hat also genau das als Größe, beginnend oben links in der Bildschirmecke (Mapgröße*Zoomfaktor/100 bzw. nur Mapgröße*Zoomfaktor ohne Schritt 4). Screenshottet man jetzt die Map und verkleinert sie auf den Wert (bei vielen Grafikprogrammen kann man den gewünschten Pixelwert beim Skalieren angeben), kann man diesen verkleinerten Screenshot ins Spiel importieren und als Show Picture oben links anzeigen. Schreibe den Befehl am besten in das sich nicht wiederholende Event. Die Bildnummer muss kleiner sein als die Bildnummer der Position, damit es hinter dieser angezeigt wird, denn größere Nummern überdecken kleinere. Die Koordinaten gibst du bei "Show Picture" fest ein, also bei "Position". Wie groß die Werte sein sollten, hängt von deiner Picturegröße ab. Probiere ein wenig aus, indem du immer wieder das Spiel mit anderen Werten neustartest. Tipp: Die Hälfte der Minimap-Größe.
Mit Ende von Schritt 5 sollte das ganze schon recht schick aussehen und gut funktionieren.
6. Die Minimap ist zwar an sich einsatzbereit, aber sie hängt oben links in der Ecke. Will man sie in einer anderen Ecke (oder der Bildschirmmitte xD) haben, muss man sie verschieben, das heißt die Position (also die Rechnung) und die gescreenshottete Map "verschieben". Dazu benutzt man ganz einfach das Plus. Ist die x-Position zum Schluss zB. 10 größer, sind auch die Position sowie die Map 10 weiter rechts bzw unten. So kann man sie bis nach recht unter oder wo auch immer hinschieben. Dabei sollte man häufig ausprobieren und im Hinterkopf behalten, dass der Maker 320x240 Pixel anzeigt. Wie verschiebt man das Hintergrundbild, die eigentliche Minimap? Indem man den x-Wert im Show Picture vergrößert und/oder den y-Wert im Show Picture vergrößert. Wie verschiebt man die Rechnung? Man fügt im sich wiederholenden Event zwei "Change Variable" ganz ans Ende an (schreibt man es weiter oben hin, geht es mit dem Zoomfaktorrechnen schief). Der eine Befehl vergrößert die x-Position (x-Position += Verschiebewert, zB. 50), der andere Befehl vergrößert die y-Position (y-Position += Verschiebewert, zB. 150).
Pass aber auf. Wenn du dir nach dem Verschieben denkst, ich will den Zoomfaktor ändern, dann ist die untere rechte Ecke der Minimap plötzlich an einer anderen Stelle. Bist du dann total verwirrt, solltest du erst die beiden letzten "Change Variable" löschen, den Zoomfaktor neu überlegen und dann die beiden letzten "Change Variable" wieder hinschreiben.
Alles gepackt? Dann ist die Minimap fertig. x)
Das ist wieder viel Text und auch hier gilt: Einzeln ausprobieren, nicht verzweifeln und auch bei kleinen Fragen dazu direkt hier im Thread etwas schreiben. Und sag mir auf jeden Fall bescheid, ob du's geschafft hast. Bin da gespannt. :D Viel Spaß.
http://www.multimediaxis.de/images/smilies/old/s_017.gif CapSeb http://www.multimediaxis.de/images/smilies/old/s_065.gif
Icedragon3000
16.01.2010, 15:27
Danke für die Hilfe, aber bei meinen Events stimmt irgentwie was nicht. Könntest du vielleicht zu den einzelnen Punkten Bilder der Events hochladen, damit ich sehe, wo der Fehler liegt und ich es richtig machen kann?
Könnte ich machen, aber dann hättest du nur noch abzuschreiben und vergisst welche Schwierigkeiten es gab und wie man sie umgeht. ;)
Ich hätte einen Alternativvorschlag:
Es werden zwei Events benötigt, ein sich wiederholendes und ein einmaliges. Sinnvoll wäre es mMn wenn jetzt du deine bisherigen Varianten zeigst. Das würde mir auch Arbeit sparen wäre auch viel interessanter zu untersuchen.
Womöglich hast du Fehler gemacht. Wenn du abschreibst, wären diese Fehler nicht verschwunden - nur verdeckt. Also schön am Ball bleiben. :)
http://www.multimediaxis.de/images/smilies/old/s_017.gif CapSeb http://www.multimediaxis.de/images/smilies/old/s_065.gif
Icedragon3000
20.01.2010, 17:50
Bei mir sehen die Events so aus:
http://img694.imageshack.us/img694/2442/map1c.png
http://img207.imageshack.us/img207/3151/map2v.png
Kannst du mir wenigstens zeigen, wie die Zoom Variable auszusehen hat?
Da fällt einem doch direkt der Deutschpatch auf. :D
Also grundlegend erkennt man, dass bei dir beide Events auf "Paralleles Event" stehen. Das heißt die beiden Events laufen während des Spielens immer wieder von vorne bis hinten durch, wie zwei Musikstücke auf Dauerwiederholung, nur eben beide gleichzeitig. (Zumindest scheinbar, denn tatsächlich laufen sie verdammt oft abwechselnd pro Sekunde, aber das ist hierbei irrelevant). Klar, dass die sich dann gegenseitig in die Quere kommen.
Und nochwas: Bei Show Picture darf "Move with Map" nicht aktiviert sein, sonst klebt das Bild auf dem Untergrund quasi fest. Vielleicht hast du das aber schon richtig eingestellt.
Ich gehe mal die Schritte durch um nachzuvollziehen, wo du gerade steckst.
Schritt 1: Optimal gelöst. Abgehakt. ^^
Schritt 2: Dir fehlt scheinbar das Wissen, wie man ein Event erstellt, das nur einmal abläuft. Der Trick: Es löschen. Dazu einfach als letzte Zeile im Event "Clear Timer"/ "Delete Event" hinzufügen (3. Seite direkt über "Call Event", je nach dem, wie es bei dir heißt - die deutschen Eventbefehle kenne ich leider nicht). Dadurch ist es nach einmal Durchlaufen weg. Erst wenn man die Map verlässt und wieder betritt, ist es erneut da, läuft einmal durch und verschwindet dann wieder. Meistens ist dieses Unsichtbarschalten nicht die beste Lösung. Zunächst reicht es. Wenn du jetzt , später oder wann auch immer Alternativen wissen möchstest, einfach fragen (Dein Tab (=Switch) wird dann vielleicht gebraucht, bei Delete Event aber nicht).
Mithilfe von Delete Event (bei dir für Event Nr. 29 gedacht) machst du daraus ein Art Vorbereitungsevent, in dem alle Sachen drinstehen, die vor dem dauernden Wiederholen des anderen Events passieren sollen.
Und jetzt merkst du es vielleicht gerade selbst: Das Move Picture gehört in dein Event 26, denn das wiederholt sich immer und Move Picture soll ja stetig die Heldposition aktualisieren. Umgekeht gehört das Show Picture für die Heldposition in das eben genannte andere Vorbereitungsevent. Show im Sinne von erzeugen. Und das muss man nur einmal. Die Bild-ID scheint richtig eingestellt zu sein. Das dürfte funktionieren. ^^
Zum Anzeigen der Minimap schreibe ich noch nichts, das ist erst Schritt fünf und braucht den Zoomfaktor.
Also Aufgabe könnte folgende sein: Schritt 2 reparieren und selbst mal mit dem Zoomfaktor anfangen. Im Grunde ist das nur eine Variable im Vorbereitungsevent. Probier's mal, macht Laune. :D
Wenn du dann deine Events wieder Screenshottest, kann es weitergehen.
http://www.multimediaxis.de/images/smilies/old/s_017.gif CapSeb http://www.multimediaxis.de/images/smilies/old/s_065.gif
Icedragon3000
20.01.2010, 20:53
Die Events habe ich bearbeitet. Sind sie jetzt richtig?
http://img188.imageshack.us/img188/6356/map1v.png
http://img121.imageshack.us/img121/5901/map2t.png
Ist die Variable richtig eingestellt?
http://img46.imageshack.us/img46/5737/vari.png
Und ist die Variable am richtigen Platz?
http://img22.imageshack.us/img22/5598/mapvari.png
Lange nichts geschrieben. Jetzt geht's weiter. ^^
Schritt 1: Schnee von ... letzter Woche.
Schritt 2: Jop. So stimmt es. Event29 erzeugt ein Picture per ShowPicture und gibt diesem die Nummer 1. Dann wird das Event gelöscht und macht nichts mehr. Event26 speichert in die Variablen 41 und 42 die Heldposition und bewegt dann das Picture an die Pixelposition, die in Variable 41 und 42 steht - und zwar bei jedem Durchlauf des Events (knapp 60 mal pro Sekunde). Und ich hoffe doch, dass es auch beim Testspielen genau so aussieht. Schritt 2 - fertig.
Schritt 3: Der Zoomfaktor. Also eine passende Variable mit der Nummer 40 hast du erstellt.
Was passiert da jetzt? Immer wenn das Spiel startet, sind alle Variablen vom Maker auf null gesetzt. Das heißt dein Zommfaktor steht auch auf Position null. Jetzt startet das Event und dort steht bei dir folgendes: Multipliziere den Wert, den Zoom hat, mit 5. Denn genau das hast du ausgewählt: Im mittleren Bereich des Change Variable ist dieser Stern ausgewählt. Der bedeutet malnehmen. Und null mal fünf ist ... null. Also macht dieser Befehl bei dir effektiv nichts. :D
Reparieren lässt sich das ganz einfach. Du willst den Wert in Zoom garnicht mal fünf nehmen sondern ihn auf fünf setzen. Links neben dem Mal-Zeichen gibt es das Auswahlfeld "Wähle" (im Englischen "Set"). Wenn das aktiviert ist, setzt du die Variable die oben gewählt ist, auf den Wert den du unten reinschreibst. Da kann also fünf stehen bleiben. Wenn du das machst, wird zu Beginn des Spiels das Event einmal gestartet, dabei Zoom auf fünf gesetzt und am Eventende das Event gelöscht. Und genau das ist geplant.
Und was bringt das ganze? Du hast eine Variable die den Wert fünf hat. Wenn du jetzt im Event 26 nach dem setzen der Variablen 41 und 42 (was du schon gemacht hast) eine Change Variable einfügst, das die Variable 41 ändert, hast du gewonnen. Wie soll sie geändert werden? In Change Variable steht oben die Variable die geändert werden soll (Nr. 41) in der Mitte dass man sie mal-nimmt (der Stern) und unten mit was. Nämlich mit dem inhalt von Zoom. Bei Operand also das zweite Feld auswählen und Zoom nehmen. Der Effekt X-Pos wird zu X-Pos mal Zoom. Zoom ist fünf, also wird X-Pos 5 mal so groß. Und das passiert jetzt bei jedem Durchlauf des Events. Da sie aber immer immer wieder erst auf die Heldposition gesetzt wird wächst sie nicht dauernd weiter, also kein mal fünf, mal fünf , mal fünf ... versuch einfach mal selbst nachzuvollziehen wie der Maker die Variable jedesmal ändert, wenn du im Spiel läufst.
Das gleiche muss noch für die Y-Position gemacht werden. Also noch ein Change Variable bevor das Bild bewegt wird, diesmal aber mit Y-Pos*Zoom. Fertig ist die Gezoomte Minimap. Wenn der Zoomfaktor nicht gefällt einfach die Zahl fünf ändern. In Event 26 bleibt alles gleich.
Schritt 4 wartet mit noch mehr Rumrechnen. ^^
Wenn du willst kannst du aber auch direkt bei Schritt 5 weitermachen (Tipp: Das Anzeigen des Minimap-Hintergrundes muss nur einmal zu Beginn des Spiels passieren. Also gehört der Show Picture Befehl dazu in dein Event 29).
http://www.multimediaxis.de/images/smilies/old/s_017.gif CapSeb http://www.multimediaxis.de/images/smilies/old/s_065.gif
Ich würde dir das Forgotten E-Book empfehlen. Eigentlich eine Pflichtlektüre für jeden Neuling. Darin werden Switches/Variablen und eigentlich alles erklärt, was man als Einsteiger über den Maker wissen sollte.
Zur Minimap:
Schau dir die Skripte in Spielen an, die solche eine Minimap umgesetzt haben. Mir fallen da VD1+VD2 ein. Guck dir die Skripte an, versuch sie zu verstehen und selber mit einem eigenen Skript umzusetzen. Und dann klappt das schon irgendwie.
Mal so als Tip nebenbei, am einfachsten ist dieses Skript umzusetzen, wenn die Bilddatei der Minimap genau so viele Pixel hat, wie die Map an Tiles. Dann lässt du die Minimap oben links in der Ecke anzeigen. Du speicherst die Positionen des Hero´s in einer Variable für die X und einer Variable für die Y-Koordinaten. (Coordinate, nicht Scene) Dann brauchst du nur noch ein Picture als Anzeige über der Minimap anzeigen das genau nach diesen Koordinaten angezeigt wird.
Wenn die Minimap nur halb so viele Pixel hat, wie die Map Tiles, dann musst du die Variablen, nachdem du in ihnen die Koordinaten gespeichert hast, mit 2 dividieren.
Das ist übrigens genau die Vorgehensweise die IceDragon3000 (Edit, <=lol bin ich dämlich xDD) oben verwendet hat.
Easy going, wenn man versteht was Variablen sind und diese zu Nutzen weiss.
Icedragon3000
06.02.2010, 18:56
@natix: Wenn ich es so mache, bis zu welcher Größe geht das?
Bis zu 320x240 Pixel, allerdings ist dann auch der ganze Bildschirm voll mit der Minimap.
Wenn du aber nun eine Worldmap mit 300x300 Tiles hast, kannst du auch einfach eine Minimap mit 150x150 Pixel nehmen (Koordinaten durch 2 teilen) oder eine 100x100 Pixel Minimap (Koordinaten durch 3 teilen) etc.
Lass ein wenig deine Kreativität spielen ;)
Icedragon3000
07.02.2010, 18:21
Es funkltioniert immer noch nicht richtig. Kannst du dir bei dem Event bitte mal ansehen wo der Fehler liegt?
http://img502.imageshack.us/img502/7924/eventt.png
Was funzt denn bei dem Script nicht richtig ?
Deinem Script nach zu urteilen ist die Minimap 100x100 Pixel gross und die Worldmap 300x300 Tiles?
Wenn dem so ist, dann müsste das eigentlich richtig sein, kann da keinen Fehler draus erkennen, es sei denn, du hast die Transparenzen eines Bildes angestellt.
RPG Hacker
07.02.2010, 19:35
Bei den letzten zwei "Var Ändern"-Befehlen, teilst du da wirklich durch den Wert der Variable oder oder durch den Wert der Variable, auf die die Varaiable zeigt? Das hier sieht mir nämlich nach lezterem aus. Klingt zwar alles irgendwie ähnlich, ist aber völlig verschieden. Du musst beim Var-Ändern-Fenster unten bei der Zuweisung die zweite Option auswählen, nicht die dritte. Hast du das so?
Obwohl warte mal... Ich habe bei "val" "var" gelesen. Vergiss, was ich gesagt habe, Dürfte doch richtig so sein.
Bei den X- und Y-Koordinaten hast du auch ganz sicher die Karten-relativen und nicht die Bildschirm-relativen Koordinaten ausgewählt?
Warte mal, so kann das ja nicht funktionieren. Du zeigst zuerst das Bild an und teilst DANN durch 3? So geht das natürlich nicht. Der zweite Bild-Anzeigen-Befehl muss ganz nach unten, direkt über den Warte-Befehl.
Warte mal, so kann das ja nicht funktionieren. Du zeigst zuerst das Bild an und teilst DANN durch 3? So geht das natürlich nicht. Der zweite Bild-Anzeigen-Befehl muss ganz nach unten, direkt über den Warte-Befehl.
Machen wir ein wenig Mathe. juchu!
Er benutzt eine 300x300 Tiles Map.
Er benutzt als erstes Bild ein 100x100 Pixel Bild.
Nun setzt er auf der Map die Koordinaten auf den Hero. (Was er auch richtig gemacht hat, da steht Koordinate, ned Scene)
Diese muss er nun, selbstverständlicher Weise, durch 3 teilen, da die Minimap ja 3x so klein ist wie die Worldmap. Und als zweites Bild zeigt er dann den Pointer auf dem ersten, der Minimap, an. Ich seh da ehrlich keinen Fehler o_o
EDIT:
lol, jetzt versteh ich was du meinst. Ja, haste Recht, ich dachte du wärst verwirrt das er durch 3 dividiert. :P
Icedragon3000
07.02.2010, 20:33
Danke für die Hilfe! Jetzt läuft sie genau so wie es sein soll:D! Ich musste nur das zweite Bild anzeigen weiter nach unten tun.
Vielen Dank noch malhttp://www.multimediaxis.de/images/smilies/old/sm_12.gif
RPG Hacker
08.02.2010, 19:21
Wenn du zu den X- und Y-Koordinaten eine beliebige Zahl hinzuaddierst, kannst du die Karte übrigens auch um die selbe Zahl nach rechts bzw. nach unten verschieben.
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.