[K-TUT] Der Block-durchsprung

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

    • [K-TUT] Der Block-durchsprung

      Hallo Leute,
      Bitte verzeiht wenn ein Thread dieser Art schon einmal existiert, falls das der Fall ist,
      könnt Ihr mein Mini-Tutorial gerne schließen.

      Vorwort:
      Wer kennt das nicht? Ein Platform spiel mit Gravitation und lustigen bunten Kristallen zum aufheben
      oder bösen Gegnern zum draufspringen. Wo wir aber beim Springen sind, gibt es manchmal eine
      kleine Einschränkung was das betreten der Plattformen von unten angeht. Man rammelt prinzipiell
      mit der Birne an die Unterseite und fällt wieder herunter. Und genau das wollen wir ändern.

      Grübeln:
      Nun, was machen wir jetzt? vielleicht könnten wir Abfragen ob der Sprite mit dem Kopf berüht wärend
      des Springens und dementsprechend handeln. Oder wir legen kleine Schalter auf die Plattformen...
      So ein Unsinn, es geht viel einfacher. Aber passt darauf auf, dass Ihr die Lösung eurem Spiel anpasst.

      So wird's gemacht:
      Beim Springen welches durch eine beliebige Taste Eurer Wahl festgelegt wurde, beginnt die Bewegung nach oben
      sprich wir reduzieren die "Y Position", fallen dann nach einer "festgelegten Höhe" durch die Gravitation wieder
      herunter. Das ganze nach oben heißt also Vertikal (vertical) sprich ein Faden den wir in der Hand nach unten
      baumeln lassen, hängt vertikal.

      Schnippen wir eine Münze nach oben, so könnte man das mit Unserem Charakter vergleichen der nach einiger
      Zeit durch die Anziehungskraft (Gravitation) wieder nach unten kommt. Beim Schnippen, also Springen,
      entsteht eine Positive Geschwindigkeit nach oben und diese nennen Wir im Game Maker die sogenannte
      "Vertikale Geschwindigkeit". Als Script nutzen wir diese Form: "vspeed". Mit dieser können Wir nun Prüfen
      und entsprechend handeln.

      Das Objekt:
      Wir erstellen uns ein unsichtbares Objekt und nennen es einfach "parent_jumper".
      Im "obj_player", also unseren Spieler, machen wir ein Kollisionsevent mit dem "parent_jumper"
      Dort führen wir ein einfaches Script aus "Execute Code".

      Der Code:

      GML-Quellcode

      1. if vspeed < 0 {
      2. other.solid = false;
      3. }
      4. else
      5. {
      6. other.solid = true;
      7. move_contact_solid(270,5);
      8. vspeed=0
      9. }


      Verständliche Erläuterung:
      Ist die Vertikale Geschwindikeit nach oben sprich die "Sprungkraft" größer
      als 0, dann soll "solid" also "fest / festigkeit des Objekts" ausgeschaltet werden.
      Ist das nicht der Fall, sprich die Vertikale Geschwindigkeit ist 0 oder im Minus
      Bereich (Nach unten Fallen), wird "solid" wieder true damit wir darauf laufen können.


      Bei Fragen, Anregungen oder Problemen könnt Ihr Euch gerne bei mir melden


      MfG. <(Kirby4tw)>

      Izzyshooter - echt zum schießen

      [Aktuelle Version: 3.3]