Hintergrund langsamer bewegen

  • GM 8

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

  • Hintergrund langsamer bewegen

    Howdy erstmal... Nun, ich habe schon wieder eine Frage.

    Ich würde gerne wissen, wie ich es mache, dass der Hintergrund sich beim Bewgen des Charakters langsamer aus dem Bild bewegt, als die objects und tiles, um diesen leichten 3d-Effekt zu erzeugen. So wie beispielsweise bei New Super mario Bros (Wii).

    Ich bitte um Antworten und schon mal Danke im Vorraus.

    lG LooksLike
  • Und wenn du verschieden schnelle Hintergrundebenen haben willst, versuch's mit mehreren "Dekorations"-Objekten, die alle eine höhere Depth haben als das eigentliche Spielgeschehen und sich, abhängig von der Depth, schnell oder langsam vorbeibewegen. Ein Beispiel:

    Spielgeschehen in einer Stadt:
    1. Hintergrundebene: Häuser der Stadt, laufen schnell vorbei
    2. Ebene: Hochhäuser, weiter entfernt, aber noch gut zu sehen, laufen etwas langsamer als Ebene 1
    3. Ebene: Berge, laufen langsam
    4. Ebene: Wolken & Sonne oder Mond, laufen sehr langsam bis gar nicht
    5. Ebene: Hintergrundfarbe des Himmels, läuft gar nicht

    Du verstehst, wie das gemeint ist? Gut. ^^
  • Das was du machen willst nennt man "parallax scrolling".
    [siehe z.B. en.wikipedia.org/wiki/Parallax_scrolling bzw. de.wikipedia.org/wiki/Bewegungsparallaxe]

    Du musst die Bewegung des Backgrounds (bg) abhaengig machen von der Bewegung des Spielers bzw. der Spielerposition.
    D.h. wenn dein Spieler sich nach rechts bewegt, also eine positive Verschiebung auf der x-Achse, muss sich dein Background nach links bewegen, also eine negative Verschiebung auf der x-Achse.

    Wenn du in irgendeinem Draw-Event folgendes ausführst bekommste denk ich den Effekt den du haben willst.

    GML-Quellcode

    1. background_x[0] = obj_player.x * -0.1;

    Die 0 bei background_x[0] gibt die Nummer des Backgrounds an.
    obj_player ist dein Spielerobjekt.
    Das * -0.1 bedeutet, dass sich der Background auf der x-Achse immer um 10% nach links (weil negativer Faktor) versetzt zum Spielerobjekt befindet.
    Wenn dein Spieler sich also 10 Pixel nach rechts bewegt dann bewegt sich der Background um 10*-0.1 = -1 Pixel, also um 1 Pixel nach links.

    => Je größer (vom Betrag her) dieser Faktor also ist, desto schneller bewegen sich deine Backgrounds.
    bei * -0.5 z.B. würde sich der Background halb so schnell nach links bewegen wie der Spieler nach rechts.

    Je weiter vorne deine Backgrounds/Foregrounds also sind desto schneller müssen sie sich bewegen damit der gleiche Effekt entsteht wie bei gängigen J'n'Rs, siehe Post von Irrenhaus3.
  • dafür muss man kein Experte sein xD

    er meint depth. Das ist die Zahl die du für jedes Objekt einstellen musst.
    Es legt die reihenfolge fest in der Objekte gezeichnet werden.
    Objekte mit der größten depth werden zuerst gezeichnet.
    Alle weiteren Objekte werden darüber gezeichnet.
    Wenn 2 Objekte die gleiche Depth haben ist das Objekt am weitestens hin das als erste in den raum gesetzt wurde.



    EDIT: meine Antwort gilt der Frage was depth ist

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)