Skocz do zawartości

Dwuwarstwowe obrazki


MarYO

Rekomendowane odpowiedzi

Witam.

 

Chcę zrobić prosty programik, w którym będzie można przeglądać i tworzyć "dwuwarstwowe" obrazki na zasadzie dopasowywania grafiki pierwszego planu do grafiki tła.

 

Załóżmy, że mam kilkaset plików graficznych (co ważne, wszystkie mają takie same wymiary, a różnią się jedynie liczbami w nazwie pliku). Część z nich ma służyć jako "pierwszy plan" tego dwuwarstwowego obrazka, a część jako jego tło. Za zmianę obrazka pierwszoplanowego odpowiadać mają klawisze strzałek prawo/lewo, a za zmianę tła - strzałki góra/dół.

 

Oczywiście wczytanie do zasobów GM'a takiej ilości sprite'ów nie wchodzi w grę. I tu zaczyna się magia, gdyż zwyczajnie nie kumam zasad wczytywania plików z zewnątrz i ich podmiany po wciśnięciu odpowiednich klawiszy. A, i jeszcze jedna nurtująca mnie kwestia - jak wczytywać te pliki z folderu innego niż ten, w którym znajduje się exec. Proszę o wyjaśnienie, jak tego dokonać.

 

Z góry thx za pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

ile zamierzasz władować takich grafik?

 

Heh, ilość grafiki jest niezależna ode mnie (to na potrzeby jednej gierki) i wynosi dokładnie 1418 plików - z tego 1192 to obrazki pierwszoplanowe, 224 to tło, a 2 to puste, przezroczyste obrazki.

 

Wiesz, ja próbowałem kombinować z dwiema zmiennymi, których wartości mówiłyby, które pliki wczytać (przypominam, że nazwy plików to liczby). Sądzę, że to dość proste rozwiązanie, ale jak dla mnie, to i tak na razie kosmos. Tylko nie wiem, jak zastosować coś takiego. No i przede wszystkim mam problem z tym władowaniem grafy z zewnętrznych plików.

 

A jak oceniasz powyższe rozwiązanie? Powiedzmy, że zapisuję gdzieś lokalizację plików, a zmienne mówią, który plik wczytać. Jeśli się zmienią, wczyta się inny, odpowiedni plik. Brakuje mi tylko koncepcji na zapis, który będzie działał prawidłowo.

Odnośnik do komentarza
Udostępnij na innych stronach

jak zamierzasz odróżnić (oznaczyć) pliki które są pierwszym planem, a które drugim?

 

Pliki pierwszego planu wyglądają tak: 1.gif do 1192.gif, pliki tła: bg1.gif do bg224.gif. Wszystkie pliki znajdują się w jednym podfolderze katalogu z execkiem, o nazwie "img".

 

PS. Edytowałem poprzedniego posta - może powiedz mi, czy mój pomysł jest dobry, czy nie.

Odnośnik do komentarza
Udostępnij na innych stronach

mój pomysł jest taki, aby za pomocą gm przeszukać cały folder z tymi grafikami, przypisać ich nazwy do tablic i wtedy tylko przy zmianie ładować do gm-a. Tylko teraz kwestia jak je odróżnić (który jest grafika, a który tłem)?

 

Mógł byś tła nazywać jakoś np background001, background002... a grafiki image001, image002

lub coś innego byle by obrazki i tła miały jakiś różny, charakterystyczny znak rozpoznawczy.

Odnośnik do komentarza
Udostępnij na innych stronach

mój pomysł jest taki, aby za pomocą gm przeszukać cały folder z tymi grafikami, przypisać ich nazwy do tablic i wtedy tylko przy zmianie ładować do gm-a. Tylko teraz kwestia jak je odróżnić (który jest grafika, a który tłem)?

 

Mógł byś tła nazywać jakoś np background001, background002... a grafiki image001, image002

lub coś innego byle by obrazki i tła miały jakiś różny, charakterystyczny znak rozpoznawczy.

 

Co ja? Sado-maso? Mam zmienić nazwy 1192 plików? :P

 

Powiedzmy, że to zrobię. A Ty w międzyczasie podpowiedz mi, jak zastosować tablice w tym konkretnym przykładzie - pliki pierwszoplanowe zostaną nazwane imNUMER.gif, tła bez zmian, bgNUMER.gif.

Odnośnik do komentarza
Udostępnij na innych stronach

Wow! brawo dla Ciebie, wpadłeś na coś o czym pisałem 4 posty wyżej. Problem w tym, że MarYO ma wszystkie pliki (obrazki i tapety) nazwane tak same bp. obrazek15489 i tu trzeba je jakoś przemianować albo wyznaczyć granicę, ze od np numeru 23500 są backgroundy.

Odnośnik do komentarza
Udostępnij na innych stronach

Wow! brawo dla Ciebie, wpadłeś na coś o czym pisałem 4 posty wyżej. Problem w tym, że MarYO ma wszystkie pliki (obrazki i tapety) nazwane tak same bp. obrazek15489 i tu trzeba je jakoś przemianować albo wyznaczyć granicę, ze od np numeru 23500 są backgroundy.

 

Halo, halo! Pliki już dawno się różnią! (im123.gif i bg123.gif) A z tym algorytmem, to lekko przesadziłeś :D Zatrzymujemy się więc na tablicach.

Odnośnik do komentarza
Udostępnij na innych stronach

Pliki pierwszego planu wyglądają tak: 1.gif do 1192.gif, pliki tła: bg1.gif do bg224.gif. Wszystkie pliki znajdują się w jednym podfolderze katalogu z execkiem, o nazwie "img".

Powolywałem się na to, nie wiem JAK TY CHCIAŁES INACZEJ TO ZROZUMIEĆ? Maruś, gratuluje FAILa ;P

Odnośnik do komentarza
Udostępnij na innych stronach

dobra butujcie ile wlezie ;P

 

GML (adowanieGrafik)
file = file_find_first( "\folder\*.gif", fa_directory )

 

i := 0;

j := 0;

image_file[ 0 ] = ''

background_file[ 0 ] = ''

 

 

while( file != '' )

{

name = filename_name( file )

if ( string_count( 'im', name ) > 0 )

{

image_file[ i ] := file;

i += 1;

}

else

if ( string_count( 'bg', name ) > 0 )

{

background_file[ j ] := file;

j += 1;

}

 

file = file_find_next()

}

file_image_count = i;

file_background_count = j;

GML
//i na razie amatorska lista plików

for ( i := 0; i <= file_image_count; i += 1 ) draw_text( 0, y + 15 * i, image_file[ i ] )

for ( i := 0; i <= file_background_count; i += 1 ) draw_text( 320, y + 15 * i, background_file[ i ] )

jutro dopiszę ładowanie grafik :)

Odnośnik do komentarza
Udostępnij na innych stronach

Ale po co to listować ;/ ?

Jedynie dodatkowa zamułka.

 

Masz spr_first i spr_second.

Masz zmienną first_number i second_number.

 

Strzałkami zmieniasz first_number i second_number

 

Jeśli first_number się zmiana - ładujesz plik "im"+string(first_number)+".png".

Analogicznie z second_number.

 

Choć przyznam się, że nie czytałem całego tematu uważnie, także mogłem coś pominąć :P

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