Skocz do zawartości

Wczytywanie sprite'ów z plików źródłowych


zbysheck

Rekomendowane odpowiedzi

Nie wiem już czy nie jasnoio się wyrażam czy co. Spróbuję maksymalnie wytłumaczyć o co mi chodzi.

 

Więęęęęc...

 

Jest sobie platformówka. I jest obrazek *.png. Na obrazku widać trawę, chmurkę, krzaczek. W platformówce są dwa roomy: lato i zima. Krzaczki nie pasują do zimy więc robimy drugi obrazek na którymmamy odpowiednio: zmarzniętą trawę chmurkę i bałwanka narysowane w tych samych miejscach.

 

Jak zrobić żeby program nie wczytywał obrazka chmurki z pliku exe, tylko z obrazka i przy zmianie rooma wczytywał sprite'y obiektów z innego obrazka?

Odnośnik do komentarza
Udostępnij na innych stronach

GML
var plik;

 

switch(room)

{

case runda1:

plik='lato';

break;

case runda2:

plik='zima';

break;

}

krzak=sprite_add(plik+'.gif');

/* i w zmiennej krzak mamy swojego sprite'a jest to gif gdyż z tego co wiem nie idzie wczytywać PNG z kodu :/ pliki dla spritem z lata nazywac sie powinny lato.gif a dla zimy zima.gif , lub tak jak chcesz ale wtedy musisz tam zmienic te nazwy w kodzie, tyle */

 

A sprite_exists sprawdza czy istnieje sprite o podanym indexie :P

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...

A może lepiej tak:

GML
//create, albo draw tego objectu do ktorego wczytujemy wybrany plik

sprite_replace(nazwa_sprita,nazwa_pliku,gif,liczba klatek(chyba;p);

sprite_get_precise(nazwa_sprita);

sprite_get_transparent(nazwa_sprita);

sprite_get_smooth(nazwa_sprita);

sprite_get_preload(nazwa_sprita);

sprite_get_xoffset(nazwa_sprita);

sprite_get_yoffset(nazwasprita));

Niewiem czy dobry, ale sprawdź

Odnośnik do komentarza
Udostępnij na innych stronach

W sumie myślałem żeby dać raczej *.png i tam wszystkie klatki rozrysowane, a nie animowane w gifie, no ale i tak chciałem zrobić grę w 256 kolorach więc chyba starczy. =]

 

Spróbuję tak, ale jeśli ktoś ma inny pomysł na wczytywanie a pliku inaczej to czekam =]

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chodzi o animacje to GIF - o co wam chdzi z tą stratą kolorów w GIF?

 

Jeśli zapiszesz GIF obrazek jakimś porządnym programem typu GIMP - to kolory będą niemal bezstratne :P

 

Ewentualnie bawić się w podzielenie sprita na kilka części w jednym obrazku - coś jak tilesety :P

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chodzi o animacje to GIF - o co wam chdzi z tą stratą kolorów w GIF?

Jeśli zapiszesz GIF obrazek jakimś porządnym programem typu GIMP - to kolory będą niemal bezstratne

Poczytałbyś zanim coś napiszesz:

Jednak format GIF potrafi zapisać jedynie piksel z dostępnej palety 256 kolorów.

Źródło:http://pl.wikipedia.org/wiki/Gif

Odnośnik do komentarza
Udostępnij na innych stronach

Ewentualnie bawić się w podzielenie sprita na kilka części w jednym obrazku - coś jak tilesety :P

Dokładnie o to mi chodzi, ale nie wiem jak to skombinować.

 

A co do gifów - to nie chce mi się bawić GIMPem bo akurat do pixelartowych spraw wolę inne prostsze programy. GIMPa mam jak chcę komuś powiększyć nos =]

 

EDIT

 

no jak ja zapisuje to bierze standartwow z plaety 256, nie chce mi się szukać lepszych programów, ale jak mówiłem to nie problem, akurat przy tej grze.

Odnośnik do komentarza
Udostępnij na innych stronach

Poczytałbyś zanim coś napiszesz:

Nie skomentuję tego. Teorytycznie GIF na 256 kolorów, w praktyce jest bestratny -.-

 

Co prawda Paint zapisuje GIF max 256 kolorów, no ale, znowu nawiąże go GIMP'a - zainstaluj se go i zapisz jakiś obrazek. Głowę oddaje, że będzie miał więcej niż 256.

 

Zresztą - kazałes mi poczytać o GIF - a jakbyś sam poczytał bodajże trzecie zdanie to byś przeczytał "jednak istnieje hak na uzyskanie bezstratnych kolorów" (czy jakoś tak...)

 

GIMPa mam jak chcę komuś powiększyć nos =]

Nie każę ci rysować GIMPem, rysujesz se choćby w Paintcie, zapisujesz w Paintcie jako *.png, a GIMPa używasz, aby skompresować do GIF

Odnośnik do komentarza
Udostępnij na innych stronach

Przecież ten kod co Ci podałem to gmlowa wersja tego klocka :)

GML
//create tego objectu do ktorego wczytujemy wybrany plik

sprite_replace(nazwa_sprita,nazwa_pliku.gif,-1);

sprite_get_precise(nazwa_sprita);

sprite_get_transparent(nazwa_sprita);

sprite_get_smooth(nazwa_sprita);

sprite_get_preload(nazwa_sprita);

sprite_get_xoffset(nazwa_sprita);

sprite_get_yoffset(nazwasprita));

Odnośnik do komentarza
Udostępnij na innych stronach

ehehe... no tak... beginner jestem, najprostsze rzeczy przegapiam =D

 

EDIT

 

No ale może ktoś wie jak wczytywać poszczególne klatki do postaci z takiego tileseta?

 

np. Mamy taki tileset

honza01.gif

i chcę zrobić chociaż dwa sprajty

Stanie = idle1, idle2, idle3, idle2

Chodzenie = walk1, walk2, walk3, walk2

 

Pomysły? Prościej nie umiem wytłumaczyć xD

Odnośnik do komentarza
Udostępnij na innych stronach

Kodu nie mam, bo to z godzinka roboty :P (przynajmniej dla mnie...)

 

Ale podam sugestie:

 

1. Niech sprity będą blisko siebie, czyli jedna animacja to klatki pod rząd, a nie wyrywkowo - jedna z początiku, druga z końca....

 

2. Wszystkie klatki powinny mieć identyczne wielkości - nie że jakiś rotate jest większy niż reszta...

 

3. Odległości między klatkami powinny być takie same.

 

Edit: Już wiem, dlaczego Grela ma pole" postów" :P Dajcxie mu a to warna, bo on nabiera naiwnych użytkowników, że ma niby wiele postów na koncie xD

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ę...