Mein D&D Jump'n run / Platformer

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Mein D&D Jump'n run / Platformer

    Hey zusammen,

    ich versuche mich dezeit an einem eigenen Jump'n run, wobei ich mit den Drag & Drop Funktionen das Platform Tutorial von yoyogames ändern möchte. Je mehr ich verstehe, umso mehr möchte ich nach und nach ändern.

    Bisherige Änderungen:
    - Tileset geladen
    - Hintergrund geladen
    - View so abgeändert, dass der Player immer in der Mitte der Sicht bleibt
    - Größe des Rooms verändert (verlängert)

    Zur Zeit habe ich folgendes Problem:
    Die Monster fallen nicht von erhöhten Plattformen auf tiefergelegene, trotzdem sie sich über den Rand der Plattform bewegen. Sie "schweben" statt dessen bis zum nächsten "Block" oder blauen "Marker" und kehren dann um (was ja eigentlich schonmal gut ist).
    War bisher mit dem "If a position is collision free-event" und anschließendem "set gravity-event" nicht erfolgreich. Was genau muss ich tun?

    Ein umfangreiches, deutschsprachiges Jump'n Run Tut wäre super, insbesondere zur Gegner-Programmierung. Die verfügbaren Platformer-Engines dagegen sind schon super! Besonders die "simple platformer engine" aus dem hiesigen Forum, auch wenn deren Ausbau mein können derzeit noch übersteigt :)
    Schönen Gruß,
    SirEdward

    myspace.com/yourgameost (Bei Nutzung bitte kurze Info)
  • Hab ich dich richtig verstanden? Du überprüfst im Step-Event, ob eine Kollision mit dem Boden stattfindet und setzt, wenn dem nicht so ist, erst die gravity fest?

    Versuch's doch mal anders: Definiere die Gravity im Create-Event, schalt die Bodenelemente auf Solid (falls du das nicht eh schon getan hast) und lass sich die Monster dann in Richtung 270 (also unten) bewegen, bis sie auf solide Objekte stoßen. Anders ausgedrückt: Verpass ihnen die gleichen physikalischen Gesetze, die du auch dem Player verpasst hast / verpassen würdest.
  • klappt irgendwie nicht.

    Hier mal ein screenshot meines create events:



    Im start moving event ist der rechte pfeil angeklickt, speed: 4

    Im Gravity event: self, direction 270, gravity 0,5.

    Was läuft falsch? Fehlt was? Danke schonmal :)
    Schönen Gruß,
    SirEdward

    myspace.com/yourgameost (Bei Nutzung bitte kurze Info)
  • SirEdward schrieb:

    Im start moving event ist der rechte pfeil angeklickt, speed: 4

    Im Gravity event: self, direction 270, gravity 0,5.
    du meinst die "Action" ;)
    was ist im end-step event?

    Edit : Ich hab dir ein Example gebastelt : Platformer Run - Kekse!.rar

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

  • @ murlock717: Hey danke für dass Sample, genau so hab ich mir das Bewegungsmuster vorgestellt.
    Trotzdem ich glaube, alles so wie Du eingestellt zu haben, klappt's bei mir immer noch nicht... :headtouch:
    Hier gibt's meine Datei, weiß echt nicht weiter.....

    Vielen Dank schonmal :)
    Schönen Gruß,
    SirEdward

    myspace.com/yourgameost (Bei Nutzung bitte kurze Info)
  • Hi

    Ich habe mal deine Datei abgeändert. Da ich aber in D&D in sonderlich gut bin, habe ich es mit dem GML-Code geschrieben. Hoffe du kommst zurecht damit.

    Hier der Code in End Step

    GML-Quellcode

    1. // --- <> Kollisionen <> ---
    2. // - vv Unten vv -
    3. if (place_meeting(x,y+vspeed,obj_block)) && (vspeed > 0)
    4. {
    5. move_contact_solid(270,vspeed);
    6. vspeed = 0;
    7. }
    8. // - vV Gravitation Vv -
    9. if (place_meeting(x,y+1,obj_block))
    10. {
    11. gravity = 0;
    12. // Allgemeine Befreiung von Hängern
    13. // Bei Bugs bitte diese Zeile zum Kommentar machen!
    14. move_outside_solid(90,1);
    15. }
    16. else
    17. {
    18. gravity = 0.5;
    19. }
    Alles anzeigen


    Ich habe alles aus End Step entfernt was du da eingebaut hast. Wenn das Monster schneller nach unten soll, erhöhe die gravity.
    Dann habe ich noch was was an den Marker verstellt. Das was vorher in End Step war um das Monster zu drehen, steht jetzt beim obj_marker

    So hier der Link von Uploaded.to
    http://ul.to/ijy8h8/platform_5_-_neu.gmk

    So hoffe das es dir hilft.
    Gruss Drachen :)

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

  • Leider versteh ich den Code nicht, aber er funktioniert :D. Dank Dir! Einige Fragen hab ich aber trotzdem noch:

    1. Warum muss die Einstellung eigentlich im EndStep Event vorgenommen werden?
    2. Wäre es sehr aufwändig, die Sprünge des Players abhängig von der Dauer des Tastendrucks zu programmieren? Bislang springt der Player immer gleich hoch. Bei Mario bspw. ist das nicht so.
    3. Trotzdem sich die Viecher jetzt richtig bewegen, gibt's stellen, an denen sie das nicht tun. Woran kann das liegen? (siehe hier )
    4. Mein Hintergrund wird nicht nahtlos vervielfältigt. Stattdessen werden horizontale Linien angezeigt, bis der Hintergrund irgendwann weitergeht. Konkret sieht das so aus:


    Irgendwelche Idee, wie ich das lösen kann? ?(
    Schönen Gruß,
    SirEdward

    myspace.com/yourgameost (Bei Nutzung bitte kurze Info)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von SirEdward ()

  • Hi

    zu 1:
    Nein das mus nicht im End Step stehen. Das kann auch im Step stehen.
    zu 2:
    Hier ist eine Seite vom GM wo das mal ein Thema war
    Springen wie bei Super Mario

    zu 3:
    Du hast ein paar Makrer vergessen. Da wo die Marker fehlen läuft das Monster permanent gegen die Mauer. Im deinen fall sieht es so aus als ob er steht. Also kontrollier mal deine Marker.
    zu 4:
    kann ich nichts sagen da es bei mir nicht aufgetreten ist. Vielleicht liegt der Fehler bei deiner Grafikkarte. Mehr kann ich dazu nicht sagen.

    So ich versuch mal dir den Code zu erklären

    in der ersten If-Anweisung wird geprüft ob du schon fällst. Wenn du fällst, bewegst du dich solang nach unten bis du auf ein Objekt triffts das auf solid steht.
    die zweite If-Anweisung prüft ob du schon obj_block berühst. Wenn du ihn berühst wird die gravity auf null gestetzt. Ansonstens fällst du mit einer Momentaner Wert der Anziehungskraft (gravity) (in "pixels per step").

    So ich hoffe das hilft

    Gruss Drachen :)
  • 1. Danke :)

    2. Hab den Code in den Step-Event kopiert, hat leider nicht geklappt. Liegt's vielleicht an der Reihenfolge der Events?
    EDIT: Mit dem Code des SimplePlatformEngine-Tuts, eingefügt als letzte Action im Step event hat's geklappt :thumbsup:

    3. Hast Recht mit den Markern. War aber Absicht. Wollte, dass die gegner sich in Bezug auf horizontale Wände genau so verhalten, wie bei Markern. Muss doch möglich sein, oder? Hab nochmal die Reihenfolge der Events geändert und jetzt tritt folgender Bug auf:



    Irgendeine Idee? Hier die entsprechenden Events zu den block-objekten:



    4. Freut mich. Werd den platformer mal auf meinem PC testen.

    Zur Code-Erklärung: Supernett von Dir, fürchte aber, ich müsste mich erst noch näher mit der GML befassen, um da komplett durchzusteigen :D
    Schönen Gruß,
    SirEdward

    myspace.com/yourgameost (Bei Nutzung bitte kurze Info)

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

  • Hi
    eigentlich braucht du doch gar nicht move to contact, set the vertical speed im collision event von obj_block. Das erledigt doch schon der GLM-Code im end event.

    Du könntest doch mal versuchen in deinen obj_crab den Parent zu aktivieren. Nimm als Parent dein Monster. Das obj_crab übernimmt dann alles vom obj_monster. Du brauchts dann nur noch den collisions event abfragen für die Wende vom obj_crab. Müsste eigentlich klappen. Versuches es mal.

    Gruss Drachen :)

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