Ergebnis 1 bis 20 von 34

Thema: [Variablen] Relative Bildposition in XY-Koordinate umwandeln

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    [Variablen] Relative Bildposition in XY-Koordinate umwandeln

    Hallo,

    mit Sicherheit ist es eine etwas komplizierte Angelegenheit, aber alleine komm ich einfach nicht drauf.
    Ein Bild über ein Ereignis zu setzen indem man die XY-Werte in Variablen umwandelt, die die Bildposition wiedergeben ist ja sehr einfach möglich.

    Aber geht das auch umgekehrt? Kann man ein Event unter ein Bild setzen indem man irgendwie die X- und Y-Werte eines Bildes, also deren Relative Bildpositionsangaben in reine X- und Y-Koordinaten umwandelt?

    Danke.

    Geändert von Stray (13.06.2014 um 15:12 Uhr)

  2. #2
    Spontan, ohne groß darüber nachzudenken, würde ich sagen, dass man auf dem 2K3 die X/Y-Koordinaten des Bildes (=Mittelpunkt) durch 16 teilen muss.

  3. #3
    Kelven, das Problem ist das die Bilder immer relativ zum Bildschirm angezeigt werden. Die Standardwerte sind wenn ich mich nicht Irre X:160/Y:120 und diese einstellung setzt den Mittelpunkt des Bildes genau in den Mittelpunkt des Bildschirms...

    Wenn man nun also ein Event unter ein Bild setzen will mus man wenn man das Bild anzeigt, erstmal die Position des Helden speichern, dann weiß man schonmal wo sich das Bild ungefähr befindet. Nun muss man nurnoch berechnen wie dein Bild von den Standardwerten abweicht. Sagen wir mal du zeigst ein Bild an der Position X:176/Y:137 an.
    176-160 = 16 / 137-120 = 17
    Nun wissen wir die abweichung vom Standard, das nurnoch durch 16 teilen (1 Feld im Maker besteht aus 16 pixeln) und schon wissen wir was wir noch von den Koordinaten die wir zuvor gespeichert haben subtrahieren/addieren müssen.
    16/16 = +1
    17/16 = +1,0625
    Ich weiß nicht wie der Maker intern Kommazahlen behandelt, falls er nen Integer zum speichern benutzt werden die Kommastellen am ende einfach abgehackt. Das wollen wir allerdings nicht, den 17 pixel sind technisch gesehen 2 Felder. Entweder wir würden also jede zahl einfach aufrunden 17+(16-(17%16)) und das ganze dann durch 16 teilen 32 / 16 = 2
    Oder aber du prüfst einfach ob die Zahl die wir teilen wollen einen Restwert besitzt 17 % 16 und rechnest je nachdem +1 oder -1

    Sooo, ich hoffe meine Lösung ist verständlich und nicht viel zu kompliziert ._.

  4. #4
    1. Platziere in die obere Linke Ecke der Map ein leeres Event QW.
    2.EventQW wird uns helfen den aktuellen Screenkoordinaten abstand zur oberen ganz linken Ecke zu bekommen, das hilft bei der Rechnung.
    Als Position des Bildes auf dem aktuellen Screen nehmen wir mal ScreenX= 160 von Bild1 und ScreenY = 120 von Bild1.
    Variable1 = ScreenX von EventQW oben links in der Ecke
    Variable2 = ScreenY von EventQW oben Links in der Ecke

    (Variable1 mal(-1) +160) geteilt durch 16 (Beim Ace ist es durch 32 beim rm2k kenne ich mich nicht so aus) = Mapkoordinate X für dein Event das du unter dem Picture zeigen willst.
    (Variable2 mal(-1) +120) geteilt durch 16 (Beim Ace ist es durch 32 beim rm2k kenne ich mich nicht so aus) = Mapkoordinate Y für dein Event das du unter Dann noch das Event auf die Koordinaten Teleportieren.
    Edit: Set Event BlaBla auf X= Variable1 / Y= Variable2

    Methode meines vorposters ist glaube ich das selbe falls sich da kein fehler im detail verbirgt.
    Beim Mapscrollen könnte es aber trotzdem zu verschiebungen von picture und event kommen. Was hast du eigentlich vor zu Bauen????????????

    Geändert von Bex (04.06.2014 um 23:20 Uhr)

  5. #5
    Bei meiner Methode existiert aufjedenfall ein Fehler den ich heute morgen nicht bedacht habe^^, der Mittelpunkt des Bildschirmes ist normalerweise immer die position des Helden, außer der held befindet sich am Rand der map, das müsste man also noch ausgleichen...

    Aber wo ich gerade zum ersten mal relative x und y sehe, keine Ahnung warum ich das immer übersehen habe^^, wenn ich schonmal hier bin, was macht der Befehl genau? Ich verstehe den nicht ganz^^

  6. #6
    Was genau möchtest du denn erklärt haben? Was meinst du mit relative Variable?

  7. #7
    Einfach den Befehl bei VariableOprations unter Sprite Screen-Relative X und Y

  8. #8
    @djeurissen
    Ja, das ist richtig. Am besten Stray sagt mal, was er mit dem Bild eigentlich vorhat. Vielleicht gibt es für das Problem noch eine einfachere Lösung, als über die Koordinaten zu gehen. Auf den neuen Makern könnte man alternativ zum Bild vielleicht auch ein großes Charset nehmen.

    Screen-X und Screen-Y liefern die Pixelkoordinaten eines Events. Sie werden meistens dazu genutzt, um ein Picture zu setzen.

  9. #9
    Ah jetzt verstehe ich, relative x und Y heisst beim VX und Ace einfach nur ScreenX und ScreenY. Hatte mich nur gewundert zuvor.
    Ja es wäre hilfreich zu wissen was er vorhat, um zu sehen ob es nicht einen anderen oder einfacheren weg für das gibt was er vorhat.Wobei die oben beschriebene Funktion funktionieren sollte^^.

  10. #10
    @Kelven:

    Ich möchte mich wieder mal an einem Jump'N'Run Spiel versuchen, allerdings mit Pixelmovement, da viele das ungenaue auf Feldern basierende nicht spielen wollen. Meistens wird mir dann das Pixel Movement Script von Simon empfohlen. Der Aufwand dafür scheint mir aber so immens hoch zu sein, weil man dafür die ganze Umgebung und alle seine Gegner per Pictures animieren und bewegen müsste.

    Was ich machen möchte ist etwas kompliziert zu erklären:
    Ich habe mir gedacht, dass man ein Script machen kann, in dem nur der Held als Bild animiert wird, hauptsächlich damit Pixelmovement in der Steuerung möglich ist. Unter dieses Bild wird permanent ein Ereignis gesetzt, das dann als Orientierungspunkt für den Standpunkt des Helden dient. Überschreitet das Bild dann ein Feld zu mehr als 50% (oder höher) wird das Ereignis auf das am nächsten liegende Feld gesetzt.

    Es wäre eine pflegeleichtere Art für Pixelmovement im RPG Maker, denke ich.


    @Djeurissen:
    Hmmm... ganz klar ist mir die Lösung nicht. :/

    Geändert von Stray (12.06.2014 um 01:32 Uhr)

  11. #11
    Was verstehst du den nicht?

Berechtigungen

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