Ergebnis 1 bis 14 von 14

Thema: Minimap!

  1. #1

    Minimap!

    Eine Minimap muss ja immer eine bestimmte größe haben die von der größe der Map im Maker ausgeht?

    Meine Frage kann man die größe der Minimaps nicht irgendwie einheitlich halten? Wie in FF10,FF12, da ist die Minimap immer gleich groß!

    Edit:
    Kann mir auch noch jemand erklären wie ich eine Minimap in der Mitte der Karte anzeigen kann und darauf die Position des Helden!

    Danke schonmal für die Hilfe im Vorraus!

    Geändert von syhlpan (13.04.2007 um 12:17 Uhr)

  2. #2
    alsó ich denke mal das geht so^^:

    Erstmal kommt des drauf an wie grosser deine Map ist! nehmen wir also beispiel das sie X=450 und Y=450. und das pic das angezeigt wird ist X=90
    und Y=090 naja dann musst du die 430durch die 90 teieln also bekommst du 5!
    Und dann musst du noch jeweils wie weit weg vom rand das bild ist ausrechnen wenn es in der mitte ist dan ist es X=110 und Y=75
    naja ist bissl dumm das zu erklären schau dir mal einfach das untere pic an^^



    naja und dann nur noch auf ein parallel process event das bild was die position des helden angibt zeigen.^^ und die map auf einem parallel process zeigen oder auf einem autostart even ( bei autostart darfst du halt nicht vergessen das du danach noch clear timer machen musst^^)

    Ich hoffe das konnte dir helfen^^!

  3. #3
    Zitat Zitat von syhlpan
    Meine Frage kann man die größe der Minimaps nicht irgendwie einheitlich halten? Wie in FF10,FF12, da ist die Minimap immer gleich groß!
    Geniale Idee ^^

    Ich hab mir das mal so überlegt und ich schätze wenn ich dich richtig verstanden habe, willst du, dass es eine kleine Karte(irgendwo in ner Ecke) wird die sich dann aber bewegt.
    Also nicht, dass der Hero(zb. in form eines roten Punktes) seine Position
    auf der Karte verändert sondern sich das Bild bewegt und der Hero immer in
    der Mitte bleibt.

    Ich hätte dazu eine Möglichkeit gefunden, aber die läuft darauf hinaus,
    dass man seine Maps durch Pic anzeigen lassen muss ^^

    Das Thema interessiert mich wirklich sehr, also wenn ich was vollbringe
    werde ich dich informieren.

    Hab ich deine Frage überhaupt richtig interpretiert ?

    ~Waradience~

  4. #4
    JA schon irgendwie^^
    Hast du auch was zur 2weiten Frage?

  5. #5
    Zitat Zitat
    Hast du auch was zur 2weiten Frage?
    Ja, irgendwie schon ^^
    Das ist jetzt so ein Weltkartentut, ist aber nicht von mir(bin mir nicht sicher, aber glaube es ist von gnaf)

    [FONT="Book Antiqua"]Ich bin das Tut[/FONT]

    ~Waradience~

  6. #6
    Schön, dass man Posts recyclen kann XD

    Zitat Zitat von Ich
    *sing* Proportionalität. Wie oft predige ich im Technikforum diese einfachste aller mathematischen Formeln *g*

    Was ist Proportionalität?

    Zwei Werte verhalten sich proportional zueinander, wenn sie in gleichem Verhältnis zueiander stehen und im gleichen Verhältnis steigen und fallen. Beispiel: Ein Drachentöter tötet täglich drei Drachen. Zwei Drachentöter bringen dann logischerweise sechs Drachen zur Strecke. Drei Drachentöter bringen neun Drachen um. Die Anzahl der Drachentöter und die Anzahl der getöteten Drachen ist also proportional zueinander.

    Was hat Proportionalität mit einer Minimap zu tun?

    Alles! *heul* Denn die Minimap steht logischerweise in einem Verhältnis zur richtigen Map, es sei denn der Kartenzeichner hat Schluderarbeit getrieben ^^°
    Du kennst auf Landkarten sicherlich unten in der Ecke immer das "1:10000" oder "1:1000000" usw. Das ist schonmal ein Hinweis darauf, dass wir es hier im Proportionalität zu tun haben! Im Maker ist das nix anderes.

    Wie rechnet man mit Proportionalität?

    Proportionale Werte sind Quotientengleich. Das heißt:
    Die Anzahl der Drachentöter DURCH die Anzahl der getöteten Drachen hat IMMER das gleiche Ergebnis.
    Beispiel: 3 Drachentöter töten 9 Drachen. 9 / 3 = 3
    5 Drachentöter töten 15 Drachen. 15 / 5 = 3

    Man kann also die Formel aufstellen

    WertA / proportionalen Wert von A = Wert B / proportionalen Wert von B

    Wie wendet man das auf eine Minimap an?

    Bei der Minimap gilt: Eine Koordinate auf der Minimap ist proportional zu einer Koordinate auf der realen Map. Wir nehmen uns also eine bekannte Koordinate raus, um dort die Verhältnisgleichung aufzustellen. z.B. nehmen wir den rechten, unteren Pixel der MiniMap. Wenn die Minimap 100*100 Pixel groß ist, und sie wird auf den koordinaten 50*50 angezeigt (ein Picture wird immer an seiner mittlersten Koordinate angezeigt), dann müsste der rechte untere Pixel bei den Pixekoordinaten 100/100 sein.
    Gehen wir davon aus das die Map 200*200 Felder groß ist.
    Wir stellen jetzt also die Verhältnisgleichung auf:

    Der 100te Pixel in X/Y-Richtung auf der Minimap verhält sich proportional zu dem 200ten Feld der Map in X/Y-Richtung

    Nun stellen wir ein zweites Verhätlnis mit unbekannten Variablen auf. Wenn sich der unterste, rechte Pixel der Minimap zu dem untersten rechten Feld der Map verhält, muss folglich auch das Feld, auf dem sich der Held befindet, zu einem Pixel auf der Minimap verhalten. Dieses Verhältnis schreiben wir also nieder:

    Der Unbekannte Pixel in X/Y auf der Minimap verhält sich proportional zu den bekannten koordinaten des Helden auf der realen Map.

    Die beiden Verhältnisgleichung schreibt man nun mit = nebeneinander, da ihre Quotienten ja gleich sein müssten:

    100 / 200 = Held_X_Minimap / Held_X_Mapkoordinate
    100 / 200 = Held_Y_Minimap / Held_Y_Mapkoordinate

    Wir kennen alle Werte (die Koordinaten des Helden kann man mit change Variable leicht herausfinden) und haben nur eine unbekannte Variable: Held_X_Minimap (bzw. Held_Y_Minimap). Nach diesen Variablen stellen wir die Formel um:

    HELD_X_Minimap = (Held_X_Mapkoordinate * 100) / 200
    HELD_Y_Minimap = (Held_Y_Mapkoordinate * 100) / 200

    Und schon hat man die Pixelkoordinaten des aufenthaltsortes des Helden raus. Mit Show Picture zeigt man in diesen Koordinaten einen roten Punkt hin.

  7. #7
    Kann mir das ganze mal jemand in der Kurzfassung geben da ich mit dem da oben nich klar komme. Ein Code wäre sehr nett!

  8. #8
    wie genau meinst du das mit der minimap?
    wie z.b bei vd oder so nur das die karte in der mitte ist?
    wenn ja dann ist ja in meinem oberen post der code

  9. #9
    Damit die Karte neber dem Zusatzmenü angezeigt wird + Position des Helden, hier das Zusatzmenü:



    Also so mittig soll es angezeigt werden da oben noch der Name des Gebietes stehen wird!

  10. #10
    dann müsste der code ganz oben (oder fast ganz oben^^) von mir eig. passen! ich habe es so bei mir und es funtzt^^!

    mfg tbk

  11. #11
    Ok! Muss ich ma testen!

    @Black:
    Wen es einen Nachtschwärmer Rang gäber dann hätten wir den verdientXD

  12. #12
    Ok! Muss ich ma testen!

    @Black:
    Wen es einen Nachtschwärmer Rang gäber dann hätten wir den verdientXD

  13. #13
    Zitat Zitat
    Kann mir das ganze mal jemand in der Kurzfassung geben da ich mit dem da oben nich klar komme. Ein Code wäre sehr nett!
    Das habe ich irgendwie befürchtet... Es ist doch wirklich nicht zu viel verlangt, sich mit der Materie auseinanderzusetzen, statt ständig Scripte abzuschreiben und sie dann als eigene Features auszugeben oO

    Die Formel habe ich unten sogar geschrieben:
    Code:
    HELD_X_Minimap = (Held_X_Mapkoordinate * Minimap-Xgröße) / Map-XGröße
    HELD_Y_Minimap = (Held_Y_Mapkoordinate * Minimap_Ygröße) / Map_Ygröße
    In Makercode würde das also so aussehen:
    Code:
    show Picture "Minimap" XKOORDINATE_MINIMAP, YKOORDINATE_MINIMAP
    change variable "x" set event hero X-Coordinate
    change variable "x" * MINIMAPGRÖSSE
    change variable "x" / MAPGRÖSSE
    change variable "x" + XKOORDINATE_MINIMAP
    change variable "y" set event hero Y-Coordinate
    change variable "y" * MINIMAPGRÖSSE
    change variable "y" / MAPGRÖSSE
    change variable "y" + YKOORDINATE_MINIMAP
    show picture "Position des Helden"-> Variablen "x", "y"
    Statt XKOORDINATE_MINIMAP und YKOORDINATE_MINIMAP gibst du zwei beliebige Zahlen ein, je nachdem, wo du die Minimap anzeigen willst (in der Mitte, oben links etc.). Statt MINIMAPGRÖSSE gibst du die Größe der Minimap in Pixeln ein. (wenn die Minimap kein Quadrat ist, so gibst du bei der Berechnung der Variable "x" die Breite des Pictures an, und bei der Berechnung der Variable "y" die Höhe. Statt MAPGRÖSSE gibst du die Größe der Weltkartenmap an. Hier wieder: Bei der "x"-Berechnung die Breite in X-Richtung, bei der "y" Berechnung die Höhe in "Y"-Richtung.

  14. #14
    Es tut mir ja leid aber ich habs probiert und probiert und es war immer falsch, deshalb wollte ich mal den Code sehen.

    Edit:
    Was mach ich falsch?:

    Code:
    Show Picture: 1, Stadteingang (160,120)
    Variable Ch:[0081:HeldX]Set, Hero x pos
    Variable Ch:[0081:HeldX]*,160
    Variable Ch:[0081:HeldX]/,20
    Variable Ch:[0081:HeldX]+,160
    Variable Ch:[0083:HeldY]Set,Hero Y pos
    Variable Ch:[0083:HeldY]*,152
    Variable Ch:[0083:HeldY]/,15
    Variable Ch:[0083:HeldY]+,120

    Mapgröße: 20x15, Minimapgröße 160x152!
    Ergebnis:

    Geändert von syhlpan (14.04.2007 um 13:03 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •