Treibsand / Wind

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

  • Wenn du keine absoluten werte für x oder y setzt, dann kannst du dich noch immer bewegen obwohl es dich wegweht.
    Dh, wenn du x = 200 schreibst, bleibt John immer auf der Stelle 200 im Raum und lässt sich auch nicht wegbewegen.
    Wenn du x += 200 schreibst, dann weht es John ordentlich durch die gegend. Jeden Step 200 pixel weit nach rechts.

    Du brauchst den code also nur so zu schreiben, wie du es bei deinem bewegungscode auch tust, mit den += und -= operatoren oder john.x = john.x + windstaerke.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Das ist Ansichtssache, würdest du die Welt nur durch eine Filmkamera und Bild für Bild (Step für Step) betrachten, dann würdest du auch zum schluss kommen, dass sich ein auto die straße entlang teleportiert. In der echten Welt mögen sich die Autos zwar flüssig bewgen, auch wenn man annehmen kann, dass die Autopartikel sich halt pro Zeiteinheit nur eine Planklänge, quasi das pixelraster des universums weiterbewegen, müssen wir beim programmieren, tricksen, vorallem, wenn der Gamemaker nur mit 30 oder 60 fps anstatt, einer infinitesimal kleinen Zeiteinheit, arbeitet. Aber wie man es beim Daumenkino oder beim Zoetrop sehen kann, reichen nur vergleichsweise wenige Bilder pro Sekunde in denen sich sogar starke Veränderungen finden können um eine flüssige Darstellung zu simulieren. Auch wenn deine Figur sich nur 1px pro step weit bewegt, teleportierst du sie und sobald sie sich schneller bewegt, als ein hindernis breit ist geht sie hindurch, es sei denn du beachtest das, in deinen collision checks.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Hier mal ein wirklich sehr einfacher Weg(quick&dirty), benötigt wird folgendes:

    1 x oPlayerBlue
    1 x oSolid

    Create-Event

    GML-Quellcode

    1. /// @description Init Variablen
    2. speed_ = 4


    Step-Event

    GML-Quellcode

    1. ​hspeed = 0
    2. if (keyboard_check(vk_right)) {
    3. hspeed += speed_ / 2
    4. } else if place_free(x + hspeed, y) {
    5. hspeed -= speed_
    6. }



    Bau Dir einen Boden und eine linke Wand, mit dem oSolid Objekt und setze das oPlayerBlue Objekt
    auf die rechte Seite(das oSolid muss natürlich Solid geflaggt sein).
    Wenn Du nun startest, wird Dein Spieler nach links "geweht" und Du kannst Dich nur nach rechts
    bewegen, was auf Grund des Windes natürlich schwerer geht.

    Miradur