Skocz do zawartości

Końcówka skryptu


Cekol

Rekomendowane odpowiedzi

Zacząłem z nudów robić skrypt składający z obrazka animację(animacje które są na jednym rysunku)

Skrypt dzieli obrazek na klatki animacji.

Problem mam w tym jak stwóżyć obrazek z danych obrazków :P

oto skrypt(może on wogule nie działać bo go nie testowłem xD):

/*  Konfiguracja*/
    Sprite = sTerr; //Sprit terenu
    SpriteWidth=10 // --
    SpriteHeigh=10 // ||
    SpriteFlames=5
    
/*  Start*/
    PicSurface = surface_create( SpriteWidth, SpriteHeigh ); //Surface klatki obrazka
    
        
           for (i=0; i<=SpriteFlames; i+=1)
         {

    surface_set_target( PicSurface );




/*  Rysujemy klatke obrazka*/

    draw_sprite_part_ext( Sprite, 0, SpriteWidth*i, 0, SpriteWidth*i+SpriteWidth, SpriteHeigh,  0, 0, 1, 1, -1, 1 );



    surface_reset_target();

/*  Tworzymy sprita z surface*/
    SpriteNewFlame[i] = sprite_create_from_surface( PicSurface, 0, 0, SpriteWidth, SpriteHeigh, 1, 1, 1, 1, 0, 0 );
    //i teraz tutaj opwinna być akcja złożenia klatek "SpriteNewFlame[i]" w jeden rysunek lecz niewiem jak to zrobić
    }

Proszę o pomoc i zrozumienie tematu :)

Odnośnik do komentarza
Udostępnij na innych stronach

Mam inny pomysł, daj mi 10min =3

 

EDIT

Finisz.

    // argument0  - Sprit albo plik ktory przechowuje animacje
    // argument1  - Ilosc klatek animacji
    // argument2  - precise
    // argument3  - transparent
    // argument4  - smooth
    // argument5  - xorig
    // argument6  - yorig
    
    // return     - ID stworzonego sprita albo false w przypadku niepowodzenia

    //Tymczasowe
    var _spriteScript, _spriteOut, _surface;

    //Ladujemy sprita
    if( is_real( argument[0] ) )
    //Z innego sprita
    {
        if( sprite_exists( argument[0] ) )
            _spriteScript = argument[0];
        else
            return false; //false gdy nie istnieje
    }
    else
    //Z pliku
    {
        if( file_exists( argument[0] ) )
            _spriteScript = sprite_add( argument[0], 1, false, false, false, false, 0, 0 );
        else
            return false; //false gdy nie istnieje
    }

    //Tymczasowe surface
    _surface = surface_create( sprite_get_width( _spriteScript ), sprite_get_height( _spriteScript ) );

    //Przerzucamy sprita do surface - bo nie mozna zaladowac go automatycznie do surface >_<!
    surface_set_target( _surface );
        draw_clear( c_fuchsia );
        draw_sprite( _spriteScript, 0, 0, 0 );
    surface_reset_target();

    //Kasujemy tymczasowego sprita
    sprite_delete( _spriteScript );
    
    //Ladujemy nowego sprita i jego pierwsza klatke
    _spriteOut = sprite_create_from_surface( _surface, 0, 0, surface_get_width( _surface ) div argument[1], surface_get_height( _surface ), argument[2], argument[3], argument[4], true, argument[5], argument[6] );

    //Ladujemy pozostale klatki
    for( n = 1; n < argument[1]; n += 1 )
        sprite_add_from_surface( _spriteOut, _surface, n * ( surface_get_width( _surface ) div argument[1] ), 0,  surface_get_width( _surface ) div argument[1], surface_get_height( _surface ) );

    //Kasujemy surface
    surface_free( _surface );
    
    //Zwracamy ID nowego sprita
    return _spriteOut;

Babum, ładuje albo z pliku albo z sprita =) Oczywiście to jest funkcja (script). Dodałem opis.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...