I am Lord Opublikowano 19 Czerwca 2011 Udostępnij Opublikowano 19 Czerwca 2011 Tytuł:Top down terrain creator Gatunek: edytor map Opis: Witam jako że pracuję na gierką stworzyłem na jej potrzeby edytor w którym mógłbym łatwo stworzyć teren 2D w widoku z góry. Trochę go zmodyfikowałem i teraz możecie podziwiać jego wersję stand-alone :P Daję wam także źródła w postaci plików .gm81 tak aby każdy mógł sobie go dostosować do swoich potrzeb. Np. dorobić do niego możliwość stawiania obiektów. Program składa się z 4 folderów: - maps - tutaj zapisywane są mapki w postaci jawnej - mask - tutaj wkładamy obrazki png w odcieniach szarości są to maski które się zamienią w pędzle do rysowania - textures - tutaj wkładamy własne teksturki o rozmiarach tych samych co maski - tools - wygenerowane pędzle Download edytor v1.02 : 1.5MB Maski textury przykład wczytwania mapy do gry :4MB change log v1.02 dodano: - wstęga pędzli została posortowana według masek, doszły dodatkowe przyciski ( scrollem mozna przewijać jak się najedzie myszką ) bug fixy: - błąd w przycisku 'nowe pędzle', ilość masek nie była sprawdzana tylko textury. v1.01 bug fixy: - program sie wysypywał gdy w folderze 'mask' była tylko 1 maska jak dodać pędzle aby dodać nowe pędzle trzeba stworzyć maskę i texturę, wkładamy je odpowiednio do folderu 'mask' i 'textures'. Textura powinna mieć rozmiar maski, gdyby była większa to zostanie wycięty tylko środek, gdy mniejsza to nie zostanie wczytana. Zapisujemy ją w rozszerzeniu png. Maska powinna mieć rozmiar 128x128, taki obrazek musi być w odcieniach szarości z jasnością ustawioną na połowę ( wtedy iteracja malowania będzie poprawnie działać ), zapisujemy w rozszerzeniu png. Na koniec wystarczy kliknąc przycisk 'nowe pedzle' by je wygenerować. interface klawisze WSAD lub strzałki - przesuwanie widokiem ŚPM lub PPM - przeciąganie widoku LPM - postaw texturkę Scroll na obszarze roboczym lub + - na numerycznej - skalowanie texturek Scroll na wstędze - przewijanie masek T - chowa/pokazuje textury Sposób w jaki mapy są zapisywane Mapy zapisywane są w folderze 'maps' w postaci jawnej, to oznacza że nie są zabezpieczone w żaden sposób przed ich edycja, o to musisz się zatroszczyć już sam. Mapa jest podzielona na surfacy o wielkości 512x512 i to one są zapisywane w folderze mapy w postaci plików .png. Jak wiadomo png jest kompresowany bezstratnie z tąd taka duża waga plików. Teoretycznie używając jakiegoś dlla do zapisu w formacie jpg dało by radę je zmniejszyć kosztem wyglądu. W folderze mapy zapisywany jest plik tekstowy info.map w nim będą zapisywane właściwości mapki jak np. nazwa i wymiary gabarytowe. W przyszłości pewnie stworzę do tego obsługę stawiania obiektów więc takowe informacje pojawią się w tym pliku. Co zrobić by wczytać mapę do gry Należy przed wywołaniem wczytywania stworzyć zmienne globalne GML globalvar map_w, map_h, map_name; Teraz skopiować te 2 skrypty do naszej gierki: GML (inforead) /* info_read(file) wczytuje plik info.map, w nim przechowywane sa dane o szerkosci i wysokosci mapy. Mozesz dostosowac sobie endytor do wlasnych potrzeb tak by np. w pliku info.map zapisywane byly jeszcze dane o obiektach postawionych na mapie */ var _file; _file = file_text_open_read( argument0 ); map_name = file_text_read_string( _file ); file_text_readln( _file ); map_w = file_text_read_real( _file ); file_text_readln( _file ); map_h = file_text_read_real( _file ); file_text_readln( _file ); file_text_close( _file ); GML (openmap) // open_map( fname ); /* Skrypt otwiera mape pochodzaca z edytora. Za argument podaje sie sciezke do pliku info.map Wczytany background jest tilesami o wielkosci block_size block_size musi sie zgadzac wymiarami gabarytowymi plikow png w folderze mapy inaczej tilesy nie beda pasowac */ var _n, _dir, _s, _f, _tempf; _f = argument0; if ( _f = "" ) exit; if ( !file_exists( _f ) ) exit; info_read( _f ); block_size = 512; view_xview = 0; view_yview = 0; _f = filename_path( _f ); w_count = ceil( map_w / block_size ); h_count = ceil( map_h / block_size ); for ( i = 0; i < w_count; i += 1 ) for ( j = 0; j < h_count; j += 1 ) { _tempf = background_add( _f + "i"+string(i) + "j" + string(j) + ".png", 0, 0 ); tile_add( _tempf, 0, 0, block_size, block_size, i * block_size, j * block_size, 10000 ); } I wywołać skrypt open_map() np. w 'creation code' rooma podając w argumencie ścieżkę dostępu do pliku info.map GML globalvar map_w, map_h, map_name; open_map( "level1\info.map"); Na pewno jeszcze będę to wszystko udoskonalał Autorzy: Programowanie: Huder Grafika: Huder Screeny: https://gmclan.org/up539_5_screen3.html https://gmclan.org/up539_5_screen1.html https://gmclan.org/up539_5_screen2.html Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 19 Czerwca 2011 Udostępnij Opublikowano 19 Czerwca 2011 Zasysam, ściągam. Z opisu wygląda fajnie, więcej w edicie ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
exp Opublikowano 19 Czerwca 2011 Udostępnij Opublikowano 19 Czerwca 2011 Szczerze mówiąc, na screenach wygląda lepiej niż w praktyce : P Tekstury nakładają się na siebie czasem trochę dziwnie i pojedyncze rodzaje też wyglądają nieładnie po pokryciu większego terenu. Ale pomijając to, bardzo fajny programik, tyle że troszkę niedopracowany. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kimonek Opublikowano 19 Czerwca 2011 Udostępnij Opublikowano 19 Czerwca 2011 To jest super ! Bez wątpienia daje 5/5 :D @up Mi się i tak tam podoba :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 19 Czerwca 2011 Udostępnij Opublikowano 19 Czerwca 2011 Hhhhmmmm... Ocenę miałem dać w edicie, ale jednak dam tu : Plusy : - prosty* interfejs - obsługa j.w. - wykonanie - łatwe dodawanie zasobów Minusy : - *na początku nie mogłem skapować co i jak Czyli większość ok ;) 4/5 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 19 Czerwca 2011 Autor Udostępnij Opublikowano 19 Czerwca 2011 Szczerze mówiąc, na screenach wygląda lepiej niż w praktyce : P Tekstury nakładają się na siebie czasem trochę dziwnie i pojedyncze rodzaje też wyglądają nieładnie po pokryciu większego terenu. Ale pomijając to, bardzo fajny programik, tyle że troszkę niedopracowany. Wszystko zależy od tego jak ustawiasz skok i iterację odpowiedni dobór tych paramterów przynosi dobre wyniki jak na moich screenach. Praktyka czyni mistrza :P Po za tym to jak efektywne będą pędzle zależy dużo od tekstur jakie wkładasz i maski. Teksturki ze screenów można pobrać tutaj: http://givemetextures.com/Dirt.php nie umieściłem ich w programie ze względu na licencję. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 19 Czerwca 2011 Udostępnij Opublikowano 19 Czerwca 2011 Niezły pomysł. Dla początkujących i tych średnio wtajemniczonych ten program to na pewno zbawienie. W najbliższym czasie wykombinuję coś podobnego, co zeżre mniej miejsca na dysku i trochę więcej pracy procesora. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
don_soyer Opublikowano 19 Czerwca 2011 Udostępnij Opublikowano 19 Czerwca 2011 zdecydowanie dobra robota. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 19 Czerwca 2011 Autor Udostępnij Opublikowano 19 Czerwca 2011 Niezły pomysł. Dla początkujących i tych średnio wtajemniczonych ten program to na pewno zbawienie. W najbliższym czasie wykombinuję coś podobnego, co zeżre mniej miejsca na dysku i trochę więcej pracy procesora. Jedyne wyjście to chyba zapis do jpg. Nie chciałem zaciągać w to dllów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 19 Czerwca 2011 Udostępnij Opublikowano 19 Czerwca 2011 Nie, nie chodzi o kompresję. Raczej o coś, co nazywa się (jeśli się nie mylę) "multitexturing". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 19 Czerwca 2011 Autor Udostępnij Opublikowano 19 Czerwca 2011 Ah w taki sposób. No to faktycznie mapki ważyły by znacznie mniej. Wystarczyło by zrobić tyle warstw ile użyto textur i tyle samo heightmap potem nałożyć na siebie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 19 Czerwca 2011 Udostępnij Opublikowano 19 Czerwca 2011 Da się jeszcze lepiej. W grze "Spellforce", gdzie cała akcja rozłożona jest na jednej siatce, każdy kwadrat składający się na siatkę ma przypisaną teksturę, więc można by wykorzystać tylko jedną heightmapę, a więc jedną warstwę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 19 Czerwca 2011 Autor Udostępnij Opublikowano 19 Czerwca 2011 Da się jeszcze lepiej. W grze "Spellforce", gdzie cała akcja rozłożona jest na jednej siatce, każdy kwadrat składający się na siatkę ma przypisaną teksturę, więc można by wykorzystać tylko jedną heightmapę, a więc jedną warstwę. jakoś tego sobie nie potrafię wyobrazić, gdzie o takim czymś czytałeś? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 19 Czerwca 2011 Udostępnij Opublikowano 19 Czerwca 2011 Bitmapa w odcieniach szarości = 256 różnych tekstur na jednej mapce Właśnie zaczynam coś takiego robić. Jak mi się uda, to fajnie. Jak nie, to pozostaje korzystać z Twojego programu ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jakim Opublikowano 19 Czerwca 2011 Udostępnij Opublikowano 19 Czerwca 2011 Wygląda całkiem nieźle. Może tak dodać oś z oraz wzniesienia terenu? :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 19 Czerwca 2011 Udostępnij Opublikowano 19 Czerwca 2011 Wygląda całkiem nieźle. Może tak dodać oś z oraz wzniesienia terenu? :) A może jaskinie do tego? Dał projekt gm81, żeby móc sobie takie rzeczy dorobić, więc nie rozumiem propozycji. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
M@ILOSZ Opublikowano 20 Czerwca 2011 Udostępnij Opublikowano 20 Czerwca 2011 nie rozumiem propozycji. Ja tam zrozumiałem... A co do projektu to fajny. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Axlii Opublikowano 23 Czerwca 2011 Udostępnij Opublikowano 23 Czerwca 2011 W przyszłości pewnie stworzę do tego obsługę stawiania obiektów więc takowe informacje pojawią się w tym pliku. Mam nadzieję że to dodasz, wręcz prosze cię o dodanie tego. :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 23 Czerwca 2011 Autor Udostępnij Opublikowano 23 Czerwca 2011 trudne to to nie jest ale teraz pracuję nad zmniejszeniem wagi savów to ma teraz priorytet. Robię jak muuuczek zaproponował multitexturing. W zasadzie to już go zrobiłem ale wymaga optymalizacji i paru poprawek. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 23 Czerwca 2011 Udostępnij Opublikowano 23 Czerwca 2011 W zasadzie to zacząłem robić przykład multitexturingu, ale w połowie robienia zorientowałem się, że to po prostu mapa tilesetów, tak jak w CS 2D. Tak więc zasuwaj ^^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 23 Czerwca 2011 Autor Udostępnij Opublikowano 23 Czerwca 2011 Taki multitexturing wyskrobałem. Edit: widzę że 14 osób to ściągnęło, zauważyłem że jest tam błąd, chciałem zasymulować tablicę 3D robiąc taki myk (j,k*i) i jak się okazało jest to błąd więc, to nie działa poprawnie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Alternative Opublikowano 27 Sierpnia 2011 Udostępnij Opublikowano 27 Sierpnia 2011 Plz podeślij mi wersję bez ograniczenia wielkości mapy xD 5/5 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ę