Depth- und Bewegungsfrage

  • Depth- und Bewegungsfrage

    Ich weiß das dieses Problem ganz einfach zu lösen ist, aber ich komme nicht darauf.

    Ich mache momentan ein Zelda Spiel. Es ist alles bisher sehr gut geworden. Nun soll es aber so sein das die Figuren je vor und hintereinander stehen können. Ich könnte mir denken wenn es irgend etwas mit dem Depth zu tun hat, bin mir aber nicht sicher ob und wie ich es anstellen soll.

    Außerdem sollte Link nicht diagonal laufen, und wieder weiß ich nicht weiter.
    Dateien
    • zelda_test.zip

      (117,82 kB, 147 mal heruntergeladen, zuletzt: )

    Die Community die ich einst liebte, ist mehr und mehr zu einer Plattform für kleine Kinder, selbstgerechte Gutmenschen und Heuchler verfallen.
    Viele Jahre habe ich ihr beim Sterben zugesehen aber mittlerweile habe ich alle Hoffnung aufgegeben.

    Golden Sun Camera Sample
    Mechferno Alpha 1.14
    Fruge Beta 3.01
  • Depth Help spricht für sich:


    Zuerst einmal, kannst du die Zeichenebene (Depth) der Instanzen eines Objektes bestimmen. Wenn Instanzen auf dem Bildschirm gezeichnet werden, geschieht dies in der Reihenfolge der Zeichenebenen. Instanzen mit dem höchsten Depth-Wert, werden zuerst gezeichnet (auf einem Stapel ganz unten, wenn man draufschaut). Instanzen mit dem kleinsten Wert werden zuletzt (obendrauf) gezeichnet. Wenn zwei Instanzen die gleichen Depth-Werte aufweisen, werden sie gezeichnet, wenn sie erschaffen (created) werden. Wenn du sichergehen willst, dass ein Objekt vor allen anderen liegt, gib ihm einen negativen Wert für Depth. Wenn es dahinter liegen soll, gib ihm einen möglichst hohen positiven Wert. Du kannst die Zeichenebene sogar während des Spiels ändern, indem du die Variable depth verwendest.


    Die Bewgung denk ich mal hast du per "Jump to a given position" gemacht (hab datei nich angeguckt.)
    Wenn ja mach sie mit "Start moving in a direction" und bei Key Release das gleiche nur halt speed 0.
    Das D&D Symbol ist gleich das erste ;)
    Face in the wind, we're riding the storm
    We'll stay our course whatever will come
    ~~ Stay (Running) Wild ~~
  • 1.: du hast eine unleserliche handschrift, gewöhn dir mal an, jede anweisung in eine zeile für sich zu schreiben.
    2.: das problem mit dem laufen konnte ich lösen, die datei dürfte im anhang sein...
    3.: ich hab irgendwie nich verstanden, was du bei dem vor- und hintereinander willst. sollen sie hintereinander sein oder nicht, bzw. was genau willst du da eigentlich?

    edit: @ defmaster, er hat gml benutzt...
    Dateien
    • zelda_test.zip

      (118,09 kB, 138 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von CAS ()

  • Defmaster:
    Nein das Depht allein löst es ganz sich er nicht.
    Und die Sache mit dem " Start Moving in a Direction" hatte ich schon versucht, es lief allerdings nicht so wie erhofft.

    CAS:
    1.: Vielleicht war das ja Extra um es euch schwerer zu machen. ;)
    Nur Spaß.

    2.: Ja ist es danke.

    3.:

    Wenn Link vor dem NPC steht soll die Grafik des Helden über der des NPC sein.
    Wenn der NPC vor Link steht soll die Grafik des NPCs über der von Link sein.

    Mit einem einfachen Depth würde z.b. Link immer über dem NPC stehen.
    Es müsste also möglich sein zu prüfen, ob einer der beiden Figuren vor der anderen steht und wenn ja den Depth erhöhen, wenn nicht ihn wieder zu senken.

    Die Community die ich einst liebte, ist mehr und mehr zu einer Plattform für kleine Kinder, selbstgerechte Gutmenschen und Heuchler verfallen.
    Viele Jahre habe ich ihr beim Sterben zugesehen aber mittlerweile habe ich alle Hoffnung aufgegeben.

    Golden Sun Camera Sample
    Mechferno Alpha 1.14
    Fruge Beta 3.01
  • 3.
    Hm..
    Ein lösungsansatz

    Du pürft die y koordinate. Wenn der eine läuft vergleichst es mit dem des anderen.
    Wenn die des anderen niedriger ist soll er hinterstehen --> depth wert ändern.

    Das gleiche dann fürs andere.
    War nur ne idee...
    Face in the wind, we're riding the storm
    We'll stay our course whatever will come
    ~~ Stay (Running) Wild ~~
  • Ja schon vertsanden... :(
    Ich habe eben noch nicht so viel mit den X und Y Werten der Instanzen zu tun gehabt.

    Die Community die ich einst liebte, ist mehr und mehr zu einer Plattform für kleine Kinder, selbstgerechte Gutmenschen und Heuchler verfallen.
    Viele Jahre habe ich ihr beim Sterben zugesehen aber mittlerweile habe ich alle Hoffnung aufgegeben.

    Golden Sun Camera Sample
    Mechferno Alpha 1.14
    Fruge Beta 3.01
  • du bittest also um hilfe, und hängst eine gm6 an, damit wir wissen, wovon du redest, und schreibst dort ziemlich unleserlich um uns zu ärgern? eigentlich müsste ich jetzt jede weitere hilfe verweigern...

    so, um den lösungsansatz von Defmaster aufzugreifen:
    mach in das kollisionsevent von link mit den anderen personen eine abfrage

    GML-Quellcode

    1. if (y>other.<)
    2. {
    3. depth=-3;
    4. }
    5. else
    6. {
    7. other.depth=-3;
    8. }


    dann brauchen aber beide ein step-event, welches prüft, ob sie noch in irgendeine kollision verwickelt sind, und welches ihre depth wieder auf -2 setzt, wenn keine kollision vorliegt. ich bin jetzt zu faul, um den genauen code in der help nachzulesen... ich habe -2 und -3 gewählt, weil ich meine, dass link in deiner gm6 eine depth von -2 hatte...
  • hier ein kleines beispiel:
    Dateien
    • isobeispiel.zip

      (4,88 kB, 141 mal heruntergeladen, zuletzt: )
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • Nichts... ?(

    Falls man so große Rooms benutzt, dann kann man doch einfach die deactivate-Funktion benutzen und alle instances außerhalb des views deaktivieren.
    Außerdem muss man es im Stepevent nur dann amchen, wenn sich das object auch bewegt... ist es ein Stein oda BAum, dann reicht es diesen code nur im createevent zu verwenden.
  • Benutzer online 1

    1 Besucher