Auch ne Simple Platform Engine

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

    • Auch ne Simple Platform Engine

      Nabend,
      Ich bastel grad an einer einfachen und zweckmäßigen Platformer Engine und da ich nicht weiß ob da jemals ein Spiel draus wird oder ich irgendeine Verwendung dafür habe, dachte ich mir, dass hier sicher jemand was damit anfangen kann.
      Ich habe zwar versucht möglichst anständig zu programmieren, aber der GM verleitet irgendwie dazu völligen Murks zu bauen.
      Also mea culpa wenns doch scheiße ist ;)

      <UPDATE>

      Hab grad mal ein paar Dinge angepasst, eigentlich muesste der Kram jetzt Lite tauglich sein. Wenn nicht dann sagt mir Bescheid :x

      Einige Geschwindigkeiten habe ich als Konstanten deklariert um immer auf die Ursprungswerte Zugriff zu haben. Die Konstanten beginnen alle mit "standard_".
      </UPDATE>

      Naja hier mal ein paar kurze Eckdaten was die kleine engine z.Z. unterstützt (fettgedruckt sind neue Features):
      - Bewegliche Platformen
      - Selfmade Gravity ohne Speeds oder so
      - Schrägen 45° und ~20°
      - Jumpthrough Blöcke
      - Wasser (und ne ultracolle Bonus Wasserverdrängungsanimation ;] )


      So Sachen wie einfache Gegner, Jumppads usw. hab ich jetzt nicht implementiert und da man sowas ja auch in Copyboys Engine sehen kann brauch ich das wohl auch nicht. Falls ich aber noch irgendwelche "Features" hinzufügen sollte werde ich das hier nachreichen. Das Problem dabei ist, dass die Simplizität mit jedem weiteren Element immer mehr schrumpft und das naja halte ich für eher suboptimal.

      So könnte das Ganze aussehen:


      Ansonsten hab ich alles recht ausführlich kommentiert und so einfach wie möglich gehalten, man sollte eigentlich alles verstehen können.
      Also guckts euch einfach mal an, vll. kann der Eine oder Andere was davon gebrauchen, wäre schade wenn ich selbst nichts zu Stande bringe und die Engine dann irgendwo auf meiner Festplatte verkommt ;)

      Edit: üble Rechtschreibfehler verbessert :x
      Dateien

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von Thodd ()

    • Sehr schöne Engine, hab' keinen einzigen Bug gefunden. =)
      Vielleicht kann ich die auch mal gebrauchen. ;)
      Eine Idee für ein Feature hätt' ich noch: Blöcke, die man von unten bespringen kann.
      Aber sonst sehr gut!

      Und frohe Weihnachten ebenfalls.
      fabse64 -> haiyyu
    • fabse64 schrieb:

      Sehr schöne Engine, hab' keinen einzigen Bug gefunden. =)
      Vielleicht kann ich die auch mal gebrauchen. ;)
      Eine Idee für ein Feature hätt' ich noch: Blöcke, die man von unten bespringen kann.
      Aber sonst sehr gut!
      Den kann ich eindeutig zustimmen! Auch den Code finde ich gut Kommentiert und Struckturiert (was das rößte problem bei sowas meist ist, finde ich, in andere Code Struckturen reinzukommen). In den Code kommt man sehr schnell rein, und das sollte man ja auch bei einer Engine ^^.

      Frohe Weihnachten "nachträglich" auch von mir ;)

      Mfg.,
      Metalknight
    • Also mir is spontan da folgendes eingefallen:
      Das Zeichnen von irgendwelchen Objekten funktioniert über das Script scr_draw_self, wenn du das nun um ein Argument erweiterst und zwar um die Rotation dann kannste deine Sprites entsprechende der Schräge drehen. (Ok der Satz war komisch...)
      Du musst dann eigentlich nur im Step Event vom Player abfragen auf welchem Block der Player steht.

      Ich hab mein J'n'R auf Eis gelegt, daher bin ich nicht mehr so ganz in der Engine drin, aber ich hab das mit dem Drehen grad mal ausprobiert und es funktioniert überraschend gut... ist nicht toll programmiert und passt passt nich zu meinen Characterdesign aber dir fällt da vll. noch was besseres ein :)

      Im Anhang ist mal die "aktuelle" Version meines Spiels... irgendwie bin ich da nich so wirklich weit gekommen, mir ist die Lust vergangen :]
      Aber egal vll. kannste damit was anfangen, da sind auch einige Dinge dabei die in der Version ausm ersten Post nicht drin sind.

      Abgesehen von meinem Character kannste alles benutzen wie du lustig bist.
      Dateien
      • jnr_engine.rar

        (24,85 kB, 473 mal heruntergeladen, zuletzt: )
    • wow bin dir echt dankbar.
      nur irgendwie drawt er das sprite nicht.
      die funktion "draw_sprite_ext" kannte ich voher überhaupt nicht.
      was muss ich denn genau angeben?


      habs gelösst war nur ein kleiner fehler.
      Nocheinmal denke, jetzt kann ich endlich wieder an dieser genialen engine rumarbeiten :P


      (Noch in Arbeit... )

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

    • Cool :thumbup:
      nur ne kleine frage dazu...
      finde nicht die Jumpgeschwindigkeit also wie schnell er hoch geht gravity hab ich ja
      nur das problem will ich halt ein bissel ändern :)

    • Wenn du im GM auf "Global Game Settings" klickst kannst im Register "Constants" die Sprunggeschwindigkeit (standard_jumpforce) einstellen.
      Sprunghoehe kannst im Create Event von obj_player unter "Geschwindigkeiten" einstellen, die Variable heisst maxdistance.
      Wenn du die Sprunggeschwindigkeit hoch setzt wuerde ich auch die Sprunghoehe anpassen da du sonst nach oben schießt und dann ploetzlich heftig abgebremst wirst, so etwa das 10fache der Sprunggeschwindigkeit als Sprunghoehe ist nen guter Wert denk ich.

      Mit dem Wert global.jumpdelay musste dann aber auch noch nen bissl rumspielen, das ist in etwa die Zeit die man "schwerelos" ist am hoechsten Punkt des Sprungs, also die Zeit die vergeht bis die Anziehungskraft spuerbar einsetzt. Muss man nen bisschen dran rumwurschteln bis man ne brauchbare Sprungparabel eingestellt hat. Selbst Aenderungen von 1 oder 2 machen da schon merkbar nen Unterschied.
    • hm.. der thread ist zwar schon etwas älter, aber die enigne die er benutzt ist genau das was ich suche. nur leider läuft mein charakter einfach ums verrecken nicht über so eine schräge. er bleibt immer schon beim ersten pixel hängen. kann mir einer vielleicht n tipp geben wie der threadersteller das gemeistert hat?

      ich glaub ich überseh da nämlich was ^^ wär wirklich super, das problem macht mich halb wahnsinnig ?(
    • Ganz einfach mit for the win :P

      GML-Quellcode

      1. //Z.B. keyboard-right-event
      2. for ( i = 0 ; i < 6 ; i += 1 ) { //Die 6 mit der maximalen Höhe an Pixeln ersetzen, die der Player hochlaufen darf ( Wenn du z.B. jetzt nur 2 nehmen würdest ( und die 2 bei x behältst ), kannst du maximal 45° Steigen hochlaufen :) )
      3. if place_free ( x + 2 , y - i )
      4. {
      5. x += 2 //Die 2 mit deiner Geschwindigkeit ersetzen
      6. y -= i
      7. break;
      8. }
      9. }
    • schade, ist eine gm6. Kann das vielleicht einer mal füt GM8 machen? Würde nämlich auch wissen, wie man schrägen erstellt :(
      "OMG, ich habe Kenny getötet"
      "Ich bin ein echter gangstar. Ich cheate in GTA San Andreas."
      "Ich bin Minecrafter ........ UND ICH BIN STOLZ DRAUF!!!"

      HomePage: the-rider.de.ki/