M@ti002 Opublikowano 15 Sierpnia 2007 Udostępnij Opublikowano 15 Sierpnia 2007 tak jak w temacie. po dluzszej przerwie znow zaczalem tworzyc i mam kolejny problem. otoz jak zrobic zeby elementy z gry (czytaj poziomy :P ) sie ladowaly tak jak w profesionalnych grach na skale swiatowa? bo zalozmy mam 50 leveli dosc sporych i zeby sie gra pol roku na slabszych pecetkach nie ladowala :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
propaganja Opublikowano 15 Sierpnia 2007 Udostępnij Opublikowano 15 Sierpnia 2007 levele to jedno, lepiej zajmnij sie ladowaniem grafik i muzyki bo to one sie najdluzej laduja Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 15 Sierpnia 2007 Udostępnij Opublikowano 15 Sierpnia 2007 Ładuj grafikę i muzykę do gry dopiero gdy zaczyna się dany level. Polecam supersound dll do ładowania muzy i sprite_add() :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
propaganja Opublikowano 15 Sierpnia 2007 Udostępnij Opublikowano 15 Sierpnia 2007 @UP hmmm co daje supersound dll? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 15 Sierpnia 2007 Udostępnij Opublikowano 15 Sierpnia 2007 Lepiej odtwarza pliki dźwiękowe i można je dać i zwolnić z pamięci w każdej chwili :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
M@ti002 Opublikowano 15 Sierpnia 2007 Autor Udostępnij Opublikowano 15 Sierpnia 2007 a to w takim razie jak dac ze mam muze w folderze z gra i pobiera ja z tego folderu? hmm... swoja droga ciekawe czy tym sposobem dziala trick ze zmiana muzy przez uzytkownika gry? :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 15 Sierpnia 2007 Udostępnij Opublikowano 15 Sierpnia 2007 Ściągnij tego DLLa (SuperSound) to zobaczysz :) Wszystko jest tak proste że nie trzeba tłumaczyć :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
M@ti002 Opublikowano 15 Sierpnia 2007 Autor Udostępnij Opublikowano 15 Sierpnia 2007 a gdzie to? :blink: wiem, kalectwo ale coz... nie chce zlapac vira jakiego ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 15 Sierpnia 2007 Udostępnij Opublikowano 15 Sierpnia 2007 http://gmc.yoyogames.com/index.php?showtopic=120034 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
M@ti002 Opublikowano 15 Sierpnia 2007 Autor Udostępnij Opublikowano 15 Sierpnia 2007 a bedziesz na tyle mily i powiesz gdzie to rozpakowac? PS ale ze mnie n00bek :P do folderu lib?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kryniak Opublikowano 15 Sierpnia 2007 Udostępnij Opublikowano 15 Sierpnia 2007 Musisz wymyśleć ogólną strukturę Twoich plików z levelami, później napisanie skryptu na wczytywanie i zapisywanie leveli (możesz zrobić własny Level Designer). Ja tak zrobiłem: W create zadeklarowałem struktury danych: global.object = ds_list_create(); ds_list_add(global.object,object0); ds_list_add(global.object,object1); ds_list_add(global.object,object2); ds_list_add(global.object,object3); global.objects = ds_list_create(); global.tilesLeft = ds_list_create(); global.tilesTop = ds_list_create(); global.tilesX = ds_list_create(); global.tilesY = ds_list_create(); global.tileid = ds_list_create(); global.insid = ds_list_create(); Możesz zrobić strukturę pliku lvl np. 0@16x32:0&2 ^ ^ ^ ^ ^ 1 2 3 4 5 1 - to id obiektu (zadeklarowany w global.obiekt) 2 - x obiektu 3 - y obiektu 4 - pozycja x tilesa (w background) 5 - pozycja y tilesa (w background) Zabieramy się teraz za napisanie skryptu ładującego: /* © Kryniak Opis: Skrypt ładuje poziom z pliku i dodaje odpowiednie obiekty. Argument 0: Nazwa pliku */ var handle,linia,element0,element1,element2,element3,element4,top,left,ins_id,a; handle = file_text_open_read(argument0); while (!file_text_eof(handle)) { linia = file_text_read_string(handle); element0 = string_delete(linia,string_pos('@',linia),string_length(linia)); element1 = string_delete(linia,1,string_pos('@',linia)); element1 = string_delete(element1,string_pos('x',element1),string_length(element1)); element2 = string_delete(linia,1,string_pos('x',linia)); element2 = string_delete(element2,string_pos(':',element2),string_length(element2)); element3 = string_delete(linia,1,string_pos(':',linia)); element3 = string_delete(element3,string_pos('&',element3),string_length(element3)); element4 = string_delete(linia,1,string_pos('&',linia)); // Tworz obiekty ins_id=instance_create(real(element1),real(element2),ds_list_find_value(global.o bject,real(element0))); // Dodawaj wspolrzedne tilesow do struktur ds_list_add(global.objects,real(element0)); top = real(element4) * 32; left = real(element3) * 32; ds_list_add(global.tilesTop,top); ds_list_add(global.tilesLeft,left); ds_list_add(global.tilesX,real(element1)); ds_list_add(global.tilesY,real(element2)); ds_list_add(global.insid,ins_id); a=real(element0); if (a==0 || a==1 || a==2) ds_list_add(global.tileid,tile_add(tile,left*32,top*32,32,32,real(element1),real (element2),100)); else ds_list_add(global.tileid,-1); file_text_readln(handle); } file_text_close(handle); Skrypt zapisujące dane do pliku: /* Opis: Skrypt zapisuje poziom do pliku. © Kryniak Argument 0: Nazwa pliku */ var handle,obiekt,left,top,tilex,tiley,pozycja; if (file_exists(argument0)) file_delete(argument0); handle = file_text_open_append(argument0); for (i=0;i<ds_list_size(global.objects);i+=1) { obiekt = ds_list_find_value(global.objects,i); left = ds_list_find_value(global.tilesLeft,i)/32; top = ds_list_find_value(global.tilesTop,i)/32; tilex = ds_list_find_value(global.tilesX,i); tiley = ds_list_find_value(global.tilesY,i); file_text_write_string(handle,string(obiekt)+'@'+string(tilex)+'x'+string(tiley)+':'+string(left)+'&'+string(top)); file_text_writeln(handle); } file_text_close(handle); Skrypt na dodawanie tilesów do rooma: var left,top,tilex,tiley,a; tile_layer_delete(100); global.drawed=0; for (i=0;i<ds_list_size(global.tilesX);i+=1) { a = ds_list_find_value(global.objects,i); left = ds_list_find_value(global.tilesLeft,i)*32; top = ds_list_find_value(global.tilesTop,i)*32; tilex = ds_list_find_value(global.tilesX,i); tiley = ds_list_find_value(global.tilesY,i); if (a==0 || a==1 || a==2) { tile_add(bck_tile,left,top+top/16,32,32,tilex,tiley,100); global.drawed+=1; } } I to by było na tyle :) Musisz jeszcze zrobić jakiegoś leveldesignera ;P Pozdrawiam Kryniak Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
M@ti002 Opublikowano 15 Sierpnia 2007 Autor Udostępnij Opublikowano 15 Sierpnia 2007 yyy... nie mam pytan :P ale gdzie rozpakowac tego dll'a??? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 15 Sierpnia 2007 Udostępnij Opublikowano 15 Sierpnia 2007 No jak to gdzie dołączasz go do gry (muszą być w tym samym folderze) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
M@ti002 Opublikowano 15 Sierpnia 2007 Autor Udostępnij Opublikowano 15 Sierpnia 2007 dobra dzieki wszystkim CLOSED Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi