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.
CapSeb
![]()