Externe Sprites (Eine Art Charset)

  • GM 8

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

  • Externe Sprites (Eine Art Charset)

    Hallo GM-D Gemeinde!

    Gibt es eine Möglichkeit einen Sprite Extern zu laden,aufzuteilen und zu animieren?

    Beispielsweise ich habe ein PNG das Schachbrettartig aufgeteilt ist in verschiedene Frames (Wie ein Charset im RPG-Maker).
    Das PNG will ich laden und aufteilen,.

    Beispiel:
    | 1 | 2 | 3 | - 1-3 Laufanimation
    | 4 | 5 | 6 | - 4-6 Stehanimation
    | 7 | 8 | 9 | - 7-9 Angriffsanimation


    Alles als 1 Bild das Extern geladen wird.

    Falls es dazu schon ein Tut gab, habe ich es per SuFu nicht gefunden.
    Für eure Hilfe wär ich sehr dankbar.

    Grüße,
    Curtis
  • Ja das muesste funktionieren. Also du erstellst eine Surface in der Groesse deines Sprite-Strips und zeichnest es auf die Surface. Dann kannst mit sprite_create_from_surface die einzelnen Bilder auslesen. Du musst die Sprites dann natuerlich in einer Variable speichern.

    MfG Trixt0r

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • Ich hab sowas mal vor längerem gemacht, hier die Ergebnisse:
    :event_create: Create Event:

    GML-Quellcode

    1. sprite_replace(spr_tiles,"Graphics\tiles.png",0,1,0,0,0)
    2. get=surface_create(sprite_get_width(spr_tiles),sprite_get_height(spr_tiles))alarm(0)=30;

    Wir erstellen ein Surface und ersetzen eine Grafik.
    30 Steps warten, damits erstmal gedrawt werden kann.
    Step-Event:

    GML-Quellcode

    1. surface_set_target(get)
    2. draw_sprite(spr_tiles,0,0,0)
    3. surface_reset_target()

    Wir drawen das ersetzte Sprite auf das Surface.
    Alarm 0:

    GML-Quellcode

    1. sprite_add_from_surface(spr_right,get,0,0,16,16,0,0)
    2. sprite_add_from_surface(spr_right,get,16,0,16,16,0,0)
    3. sprite_add_from_surface(spr_left,get,0,16,16,16,0,0)
    4. sprite_add_from_surface(spr_left,get,16,16,16,16,0,0)

    Wir holen uns die Grafiken vom Surface.
    Die sprites müssen schon vorhanden sein.
    Einfach erstellen und das erste Bild löschen!