Noch ein paar Platformer Fragen

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

  • Noch ein paar Platformer Fragen

    1. Hi ich würde erstens gerne wissen wie man so ein Trampolin bzw. ein Pilz auf dem man springen kann programmiert, ich hätte da an irgentetwas mit vspeed reduzieren gedacht, habe es aber noch nicht hinbekommen ...,

    2. Manchmal gibt es doch so Blöcke in Platformern, bei denen man von unten drauf springen kann aber wen man ersteinmal oben ist, darauf stehen bleibt ..., das würde mich auch gern mal interessieren, geht garantiert auch mit vspeed an nem bestimmten Punkt auf 0 ...,

    Vielen Dank
    Schaut mal auf meinen Games vorbei (alle für Android):

    APPLE ISAAC

    JUGGLE JUNKIE

    SKY APE

    Freu mich über Meinungen, Verbesserungsvorschläge und gute Bewertungen!!!

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

  • Neu

    Zu deinem ersten Anliegen:

    Du könntest es so versuchen

    GML-Quellcode

    1. if (place_meeting(x, y - 1, obj_Trampolin)
    2. {
    3. vspeed -= {Dein Wert};
    4. }


    Wenn der Spieler das Trampolin (von oben) berührt, dann soll er "hochkatapultiert" werden.
    Habs nicht getestet, müsstest du mal so versuchen.

    Zu deinem zweiten Anliegen:
    Da müsstest überprüfen, ob der Spieler sich unter dem Objekt befindet, dann soll es keine Kollision geben, wenn er sich drüber befindet, dann könntest du die vspeed auf 0 setzen.
    Ich weiß aber grad nicht aus dem Kopf, ob der Spieler dann (wenn er von unten kommt und die Bedingung dann wahr wird) dort festhängt, weil ein Pixel in dem Objekt feststeckt und du dich dann nicht mehr bewegen kannst. Da müsstest du dann ein bisschen rumexperimentieren.
  • Neu

    Danke für deine Antwort ...,

    Punkt 1. stimmt so, das habe ich genauso gemacht.

    Bei Punkt 2. bin ich mir aber nicht ganz sicher, ich habe es so probiert:

    Step Event Player

    if place_meeting(x,y,obj_platform) && obj_player.y <= obj_platform.y
    {
    vspeed = 0
    }

    Das funktionert leider noch nicht.
    Schaut mal auf meinen Games vorbei (alle für Android):

    APPLE ISAAC

    JUGGLE JUNKIE

    SKY APE

    Freu mich über Meinungen, Verbesserungsvorschläge und gute Bewertungen!!!
  • Neu

    Du könntest eine extra Variable mit ins Boot holen.

    Wenn du springst bzw. dein vspeed ungleich 0 ist, dann ist die Variable - ich nenne sie mal "jump" - auf true gesetzt.
    Solange die Variable true ist, ignorierst du Kollisionen. Sobald du jedoch ein Objekt y + 1 erkennst, setzt du sie auf false.

    Create

    GML-Quellcode

    1. jump = false;


    Step

    GML-Quellcode

    1. if (mouse_check_button_released(mb_left))
    2. {
    3. vspeed -= 10;
    4. jump = true;
    5. }
    6. // Je nachdem wie "dick" deine Platform ist, kann es sein, dass du mit dem y-Wert variieren musst (evtl. höher setzen)
    7. if (!place_empty(x, y + 1) || vspeed >= 0)
    8. {
    9. jump = false;
    10. }
    11. if (place_meeting(x, y + 1, obj_Platform) && jump == false)
    12. {
    13. vspeed = 0;
    14. }
    Alles anzeigen


    Nicht getestet, wäre aber einen Versuch wert
  • Neu

    Gut, also wenn ich folgenden Code benutze dann funktioniert es so wie ich es mit vorstelle ..., ich muss noch die Gravitation auf 0 setzen, da der Player
    ansonsten durch die Platform durchrutscht.

    if (!place_empty(x, y + 2) || vspd >= 0)
    {
    jump = false
    }
    if (place_meeting(x, y + 2, obj_platform) && jump == false && vspd >= 0)
    {
    vspd = 0
    grav = 0
    }
    else
    {
    grav = 0.5
    }

    Es gibt aber noch zwei Probleme, und zwar wenn ich direkt auf der Platform drauf stehe,dann kann ich nicht mehr nach oben springen, was vermutlich daran liegt das die grav auf 0 gesetzt wurde ...,

    Und zum anderen ist es so, wenn ich seitwärts in die Platform reispringe dann bleibe ich stecken, wenn ich aus einer größeren Höhe drauf falle dann rutsche ich auch ein paar Pixel rein, da hilft auch y + ... zu verändern nix.
    Schaut mal auf meinen Games vorbei (alle für Android):

    APPLE ISAAC

    JUGGLE JUNKIE

    SKY APE

    Freu mich über Meinungen, Verbesserungsvorschläge und gute Bewertungen!!!