Tempo Schwung

  • GM 8

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

  • Hab ne Frage,
    Ich arbeite zurzeit an einem 2D Shooter aus der Vogelperspektive, nun meine Frage, ich möchte das der Charakter wenn ich nach rechts oder links usw gehe, so 3 Sekunden braucht um Tempo zu kriegen und wenn man die Pfeiltaste wieder auslässt so 2 Sekunden braucht um ganz von Schwung zu verlieren. Um nicht einen plötzlichen stop zu provizieren, da ich noch gml anfänger bin, naja ^^
    Ich hätte da nur eine teil idee, aber die ist irgendwie doof,
    danke schon mal für die Hilfe

    Edit: Bei der Suchmaschine hab ich nix gefunden. hatte keine Idee welchen begriff ich dafür eingeben sollte :S
  • game.producers schrieb:

    ich werde dir mal einen denkanstoß geben, lass doch
    die variable speed mittels alarm zu- oder abnehmen.
    danke, ja daran hatte ich schon gedacht ;), aber ich habe sowas früher schon mal gelöst gehabt (durch denken wie du es so schön sagst ;)), das war 1Zeilen Code, irgendwie ist mir der verloren gegangen ^^
    was ist nochmal schnell der Variablen Speed hspeed?

    Edit: wie entscheide ich dann welche Richtung es geht, wenn man A drückt soll es nach links gehen, W nach oben ^^ uspeed ^^ ;)
    Frage, wer sind diese 3 Besucher die anscheinend nicht im Forum angemeldet sind sich hier in diesem Thread herumtummeln, sry, hab ich das unabsichtlich im Tolk Show Bereich gepostet ^^ ;), ne war nurn witz

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

  • game.producers schrieb:

    so hab mal eine vor kurzem gebastelte topdown engine upgeloadet,
    ich habe sie so geschrieben das man alles über das create event des
    objects player steuern kann.

    hoffe es hilft dir :D
    Echt danke ;), in deinem Profil steht GMl Anfänger, solltest umändern ^^ ;)


    -edit nur ein problem besteht ^^, ich wollte nicht das man es wie ein auto steuert, sondern mehr wie ein hubschrauber ;), das meinte ich ^^
    kurzgesagt, A Taste, fliegt er lnach links, W nach oben, S nach unten, D nach rechts
  • toplayer schrieb:

    -edit nur ein problem besteht ^^, ich wollte nicht das man es wie ein auto steuert, sondern mehr wie ein hubschrauber ;), das meinte ich ^^
    kurzgesagt, A Taste, fliegt er lnach links, W nach oben, S nach unten, D nach rechts
    Das his ins Create Event deines Spielerobjekts (mit den Werten solltest Du allerdings etwas experimentieren um genau das Verhalten zu kriegen, das Du haben willst):

    GML-Quellcode

    1. accel = 0.5
    2. drag = 0.9
    3. maxspeed = 6


    Das hier ins Step Event:

    GML-Quellcode

    1. if keyboard_check(ord('W')) = 1 then vspeed -= accel
    2. if keyboard_check(ord('S')) = 1 then vspeed += accel
    3. if keyboard_check(ord('A')) = 1 then hspeed -= accel
    4. if keyboard_check(ord('D')) = 1 then hspeed += accel
    5. if speed > maxspeed then speed = maxspeed
    6. speed = speed*drag


    Allerdings gibt es hier ne absolute maximale Geschwindigkeit - wenn Du verschiedene Werte für horizontale und vertikale Bewegung haben willst, musst Du natürlich separate Werte anlegen und mit "hspeed" und "vspeed" anstelle von "speed" arbeiten.

    EDIT: Hab grad gemerkt, dass Du mit WASD steuern wolltest und die Tastenbelegung enstprechend geändert

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von F4LL0UT ()

  • Warum machst du es nicht über friction (Reibung)??
    Also im Step-Event:

    GML-Quellcode

    1. if(keyboard_check_pressed(vk_up)) friction = 0;
    2. if(keyboard_check(vk_up) && speed < deinMaxSpeed) speed += 0.05; // kannst 0.05 beliebig ändern
    3. if(keyboard_check_released(vk_up)) friction = 0.75; // oder so wie du es haben willst


    Naja und den Rest mit der direction müsstest du wohl selbst hinbekommen ;)

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.