Luksor Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 Czy można zrobić tak że gdy zostanie skasowany obiekt, zostawał jego sprite. Lub zrobić coś takiego, że obiekt zapisuje index swojego sprita jego x y i się kasuję potem następny to robi, po czym inny obiekt rysuje sprite tych obiektów. Jeśli ktoś napiszę skrypt będę bardzo wdzięczy ;) Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maxius Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 Zeby zostawał sam sprite ? przecież potrzebny jest obiekt żeby było widać chyba że instance_create(x,y,obiekt) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Luksor Opublikowano 13 Maja 2008 Autor Udostępnij Opublikowano 13 Maja 2008 Zeby zostawał sam sprite ? przecież potrzebny jest obiekt żeby było widać chyba że instance_create(x,y,objekt) No wiem że raczej się tak nie da więc: Lub zrobić coś takiego, że obiekt zapisuje index swojego sprita jego x y i się kasuję potem następny to robi, po czym inny obiekt rysuje sprite tych obiektów.;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 no to w event 'Destroy" tego obiektu zapisuj stosowne zmienne ( id też zapisz ) do global albo do tablicy, a inny obiekt niech rysuje, ale poprzedź warunkiem if ! instance_exists(tutaj id zapisanego obiektu) ). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Luksor Opublikowano 13 Maja 2008 Autor Udostępnij Opublikowano 13 Maja 2008 A jak tych obiektów jest więcej? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cekol Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 Da sie bez obiektu :P GML draw_clear(c_white) draw_sprite_ext(sprite_index,image_index,sprite_get_xoffset(sprite_index),sprite_get_yoffset(sprite_index),image_xscale,image_yscale,image_angle,-1,image_alpha) bac=background_create_from_screen(0,0, sprite_get_width(sprite_index) ,sprite_get_height(sprite_index),1,1,1) tile_add(bac,0,0,sprite_get_width(sprite_index) ,sprite_get_height(sprite_index),x,y,depth) Nie mam pojęcia czy działa xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matthew Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 Da sie bez obiektu A gdzie dasz ten kod? :) E: No i background_create_from_screen w drawie to NIEWIARYGODNIE ZŁY POMYSŁ Stwórz obiekt oGra. W create daj GML spr_x[0] = 0; spr_y[0] = 0; spr_sprite[0] = 0; spr_count = 0; I w niszczeniu obiektu GML oGra.spr_x[oGra.spr_count] = x; oGra.spr_y[oGra.spr_count] = y; oGra.spr_sprite[oGra.spr_count] = sprite_index; oGra.spr_count += 1; Draw oGra GML for (i=0; i<spr_count; i+=1) draw_sprite(spr_sprite,0,spr_x,spr_y); Nie sprawdzałem. Powinno zadziałać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cekol Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 No i background_create_from_screen w drawie to NIEWIARYGODNIE ZŁY POMYSŁ Ej nie! xD To nie ma być draw, tylko np w event 'Destroy" xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 Tutaj zrobiłem to samo https://forum.gmclan.org/index.php?showtopic=11214&st=30 (patrz dziury po wybuchach) ale nie wiem czy się przyda bo na surkach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 To nie ma być draw, tylko np w event 'Destroy" xD Z draw_sprite_ext? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cekol Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 GML draw_clear(c_white) draw_sprite_ext(sprite_index,image_index,sprite_get_xoffset(sprite_index),sprite_get_yoffset(sprite_index),image_xscale,image_yscale,image_angle,-1,image_alpha) bac=background_create_from_screen(0,0, sprite_get_width(sprite_index) ,sprite_get_height(sprite_index),1,1,1) tile_add(bac,0,0,sprite_get_width(sprite_index) ,sprite_get_height(sprite_index), x-sprite_get_xoffset(sprite_index) ,y-sprite_get_yoffset(sprite_index),depth) Poprawka :) Z draw_sprite_ext? Tak, sam sie przekonaj że działa :P EDIT: Ostateczna poprawka! XD Lecz w tej poprawce nie można dawać z image_angle ponieważ nie można dać kąta tilowi xD GML draw_clear(c_white) draw_sprite(sprite_index,image_index,sprite_get_xoffset(sprite_index),sprite_get_yoffset(sprite_index)) bac=background_create_from_screen(0,0, sprite_get_width(sprite_index) ,sprite_get_height(sprite_index),1,1,1) til=tile_add(bac,0,0,sprite_get_width(sprite_index) ,sprite_get_height(sprite_index), x-sprite_get_xoffset(sprite_index) ,y-sprite_get_yoffset(sprite_index),depth) tile_set_alpha(til,image_alpha) tile_set_blend(til,image_blend) tile_set_depth(til,depth) tile_set_scale(til,image_xscale,image_yscale) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Luksor Opublikowano 13 Maja 2008 Autor Udostępnij Opublikowano 13 Maja 2008 A gdzie dasz ten kod? :) E: No i background_create_from_screen w drawie to NIEWIARYGODNIE ZŁY POMYSŁ Stwórz obiekt oGra. W create daj GML spr_x[0] = 0; spr_y[0] = 0; spr_sprite[0] = 0; spr_count = 0; I w niszczeniu obiektu GML oGra.spr_x[oGra.spr_count] = x; oGra.spr_y[oGra.spr_count] = y; oGra.spr_sprite[oGra.spr_count] = sprite_index; oGra.spr_count += 1; Draw oGra GML for (i=0; i<spr_count; i+=1) draw_sprite(spr_sprite,0,spr_x,spr_y); Nie sprawdzałem. Powinno zadziałać. Dzięki Matthew, twój kod najbardziej mi pasuje. Oczywiście wszystko działa jak trzeba, będziesz w credits ;p. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Luksor Opublikowano 22 Maja 2008 Autor Udostępnij Opublikowano 22 Maja 2008 Muszę odświeżyć ponieważ dałem kod Matthewa do innej gry i w niej już nie działa O_O. Pokazuje mi się taki błąd: Pomóżcie pls :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
M@ti002 Opublikowano 22 Maja 2008 Udostępnij Opublikowano 22 Maja 2008 no przeciez ci pisze ze nie ma zmiennej :P masz ja zainicjowana w create? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Luksor Opublikowano 22 Maja 2008 Autor Udostępnij Opublikowano 22 Maja 2008 no przeciez ci pisze ze nie ma zmiennej :P masz ja zainicjowana w create? mam tak jak podał Matthew spr_x[0] = 0; spr_y[0] = 0; spr_sprite[0] = 0; spr_count = 0; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
M@ti002 Opublikowano 22 Maja 2008 Udostępnij Opublikowano 22 Maja 2008 a na pewno w obiekcie oGra?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Luksor Opublikowano 22 Maja 2008 Autor Udostępnij Opublikowano 22 Maja 2008 a na pewno w obiekcie oGra?? Tak, z resztą zobacz sam: https://gmclan.org/up2178_11_nie_dziala.html Jeśli ktoś mógłby poprawić ten projekt to byłbym wdzięczny. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
M@ti002 Opublikowano 22 Maja 2008 Udostępnij Opublikowano 22 Maja 2008 wystarczy, ze oGra bedzie mial mniejsze ID od pozostalych obiektow (czytaj najpierw postaw w roomie oGra, potem reszte obiektow) :) EDIT: wiem ze to glupio brzmi ale u mnie tak dziala :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Luksor Opublikowano 22 Maja 2008 Autor Udostępnij Opublikowano 22 Maja 2008 wystarczy, ze oGra bedzie mial mniejsze ID od pozostalych obiektow (czytaj najpierw postaw w roomie oGra, potem reszte obiektow) :) EDIT: wiem ze to glupio brzmi ale u mnie tak dziala :) Działa. Tylko co mam zrobić jak mam już utworzonego rooma z setkami objektów, mam robić od nowa? Czy można jakoś zmienić ID oGra na mniejszy? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 22 Maja 2008 Udostępnij Opublikowano 22 Maja 2008 Musisz zwiększyć Depth oGra na np. 9999 i wyczyść cały room, wtedy niezależnie w jakiej kolejności co położysz, obiekt oGra będzie tworzony jako pierwszy ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Luksor Opublikowano 22 Maja 2008 Autor Udostępnij Opublikowano 22 Maja 2008 wyczyść cały room a bez czyszczenia się nie da? bo sama zmiana depth nic nie daje Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 22 Maja 2008 Udostępnij Opublikowano 22 Maja 2008 Musisz wyczyścić room Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Luksor Opublikowano 22 Maja 2008 Autor Udostępnij Opublikowano 22 Maja 2008 Musisz wyczyścić room a jakiś inny sposób? plz wymyślcie coś :( EDIT: Hehe, ale sposób znalazłem ;p Zrobiłem timeline i ustawiłem na 1 więc akcja dodawania sprite do tablicy wykonuje się kiedy oGra już istnieje. Thx wszystkim za pomoc. ;) 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ę