Cekol Opublikowano 20 Stycznia 2007 Udostępnij Opublikowano 20 Stycznia 2007 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 Więcej opcji udostępniania...
Tymon Opublikowano 20 Stycznia 2007 Udostępnij Opublikowano 20 Stycznia 2007 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę