Skocz do zawartości

sprite_create_from_.......background ?


Rekomendowane odpowiedzi

Możesz stworzyć surface, narysować na nim kawałek tła, a później z surface zrobić sprite.

 

Tymon, ale to wyglada tak. Jest tlo, na nim obiekty (widoczne)

i teraz chce zamienic sprajta jednego z obiektow na fragment tła pod nim. Obiekt sie porusza, wiec musze przy kazdym jego ruchu kopiowac docelowy fragment tła.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie do końca rozumiem czemu chcesz rysować fragment tła jako sprita obiektu. Po prostu nie rozumiem jaki efekt chcesz otrzymać. Jak chcesz go ukryć to po prostu visible = false, ew. image_alpha = 0. :P

Odnośnik do komentarza
Udostępnij na innych stronach

Nie do końca rozumiem czemu chcesz rysować fragment tła jako sprita obiektu. Po prostu nie rozumiem jaki efekt chcesz otrzymać. Jak chcesz go ukryć to po prostu visible = false, ew. image_alpha = 0. :P

 

tak, ale pod tym obiektem jest tile wiec jesli zrobie obiekt z alpha=0 to bedzie widoczny on a nie tło?

Odnośnik do komentarza
Udostępnij na innych stronach

super bylaby funkcja typu sprite_create_from_screen (x,y,w,h) smile.gif

Jest funkcja dokładnie tak się nazywająca tylko z innymi argumentami ale powinno załatwić sprawe :)

GML
sprite_add_from_screen(ind,x,y,w,h,removeback,smooth) Adds an area of the screen as a next subimage to the sprite with index ind.

Edit: zedytowałeś. Ale jak dasz mu chwilowe visible=0 i weźmiesz sprite_add_from_screen powinno być dobrze :)

Odnośnik do komentarza
Udostępnij na innych stronach

Myślę, że powinieneś w takim wypadku stworzyć nowy sprite całkowicie biały i wyrysować go po prostu z określonym kolorem ( blend ).

GML
draw_sprite_ext( sprite, index, x, y, scale_x, scale_y, angle, background_color, alpha );
Tak by było najłatwiej.
Odnośnik do komentarza
Udostępnij na innych stronach

Ale on ma tło za background, a nie jednolity kolor.

 

1. Zrób surface.

2. Narysuj na nim tło tak jak rysuje się w roomie.

3. Zrób sprite z fragmentu surface'a.

4. Nałóż na ten nowy sprite kanał alpha z oryginalnego sprite'a.

Odnośnik do komentarza
Udostępnij na innych stronach

Myślę, że powinieneś w takim wypadku stworzyć nowy sprite całkowicie biały i wyrysować go po prostu z określonym kolorem ( blend ).GMLdraw_sprite_ext( sprite, index, x, y, scale_x, scale_y, angle, background_color, alpha );Tak by było najłatwiej.

 

idę na strone yoyo bo nie cos nie moge znalezc u nas opisu tej funkcji.

Z tym ze tak, jezli to ma oznaczac ze tlo jest jednolitego koloru, to ten obiekt wogole od poczatku moze miec takie sam kolor i juz! Tak mam wlasnie zrobione, jednak chcialem to urozmaicic i wstawic jako tło obrazek krajobrazu :/

Odnośnik do komentarza
Udostępnij na innych stronach

Dziekuje za pomoc.

Chyba Platyna trafił w sedno, poprobuje wieczorkiem.

Dzieki Tymon, Lenin i Platyna.

Hmm problem rozwiazalem jednak inaczej.

Jednak Platyna, to nie bedzie surface jak sugerowales ale zmiana tła na tilesa i funkcja tile_add połaczona z funkcja tile_layer_delete_at.... efekt jest naprawde swietny. Jestam tez calkiem ciekawy problem z optymilizacja, bo okazuje sie ze im wiekszy tiles tym gra szybciej chodzi, choc na logike powinno byc odwrotnie. Szezej postaram sie to opisac po ukonczeniu obecnych gier... o ile oczywiscie interesuje kogos temat, a nie ma czasu samemu dojsc.

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