m97 Opublikowano 20 Maja 2012 Udostępnij Opublikowano 20 Maja 2012 Witam, poszukuję jakiegoś sposobu optymalizacji do gry typu sandbox. Mój świat się rozrasta i deaktywacja obiektów poza viewem nie wystarcza. Czy jest inny sposób? Czy można wczytywać kawałki mapy z pliku? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 20 Maja 2012 Udostępnij Opublikowano 20 Maja 2012 Ach! Zawsze chciałem to zrobić! :gnysek: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 20 Maja 2012 Autor Udostępnij Opublikowano 20 Maja 2012 Dziękuję, będę zapisywał fragmenty mapy w pliku txt, ale pojawił się kolejny problem. Mam w grze rośliny, które rosną podczas rozgrywki. Jeśli będę wczytywał kawałki mapy to rośliny w odległych kawałkach przestaną rosnąć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 20 Maja 2012 Udostępnij Opublikowano 20 Maja 2012 One są dezaktywowane czy przed wczytaniem tego kawałka mapy w ogóle ich nie ma? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 20 Maja 2012 Autor Udostępnij Opublikowano 20 Maja 2012 Do tej pory te które rosną są aktywowane też poza viewem. Mam jeszcze jedno pytanie, do pliku w którym będzie zapisana mapa lepiej zapisywać nazwy obiektów czy ich id? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 20 Maja 2012 Udostępnij Opublikowano 20 Maja 2012 No pomyśl. Lepiej zapisać 10 znaków, które jest nazwą obiektu, czy 3 znaki, które są ID obiektu. Najlepiej byś zrobił gdybyś zapisywał ID do pliku binarnego. Wtedy by najmniej ważył. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 20 Maja 2012 Udostępnij Opublikowano 20 Maja 2012 ID Instancji w GM o ile pamiętam jesti liczbą 6 cyfrową? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 20 Maja 2012 Udostępnij Opublikowano 20 Maja 2012 Ale im chyba nie chodzi o ID instacji tylko o numer referencji obiektu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 20 Maja 2012 Autor Udostępnij Opublikowano 20 Maja 2012 Co to jest numer referencji obiektu? Mi chodzi o to że chcę zapisać mapę gry w pliku txt. I potem móc ładować jej fragmenty do rooma. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 20 Maja 2012 Udostępnij Opublikowano 20 Maja 2012 https://gmclan.org/index.php?czytajart=77 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 20 Maja 2012 Udostępnij Opublikowano 20 Maja 2012 Jest to id obiektu w drzewku zasobów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 20 Maja 2012 Udostępnij Opublikowano 20 Maja 2012 Referencję uzyskasz wykonując np.: funkcję instance_find(), instance_nearrest() albo (chyba) wszystkie funkcje kolizji. ID obiektu jest w jakiejś zmiennej. (ID?) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 20 Maja 2012 Udostępnij Opublikowano 20 Maja 2012 A mi się wydaje, że jemu chodziło o to, że sobie sam ustawia ID, np. kamień - 1, cegła - 2. Choć to co napisał HuderLord będzie lepsze do zapisu mapy, bo później łatwiej ją wczytasz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 20 Maja 2012 Udostępnij Opublikowano 20 Maja 2012 @up nie @2xup nie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 20 Maja 2012 Udostępnij Opublikowano 20 Maja 2012 Tak, każdy obiekt, sprite itd mają swój nr id począwszy od 1, naprzykład object1 jest to samo co 1, więc zapis instance_create(1,x,y) jest jak najbardziej poprawny. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 21 Maja 2012 Autor Udostępnij Opublikowano 21 Maja 2012 Zrobiłem to w taki sposób i wyskakuje mi błąd. GML id_pliku = file_text_open_write("mapa") for(a = 0; a <= 30;a += 1 ){ if(a > 0){ file_text_writeln(id_pliku) } for(b = 0;b <= 30;b += 1){ file_text_write_real(id_pliku,collision_point(b*32,a*32,other,1,1).id ) } } Błąd: "Unknown variable id". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 21 Maja 2012 Administratorzy Udostępnij Opublikowano 21 Maja 2012 Czy nie można tych roślin zapisać w tablicy/gridzie/liście/ds_mapie ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 21 Maja 2012 Udostępnij Opublikowano 21 Maja 2012 Powinno być tak: GML var cid; id_pliku = file_text_open_write("mapa"); for(a = 0; a <= 30;a += 1 ){ if(a > 0){ file_text_writeln(id_pliku); } for(b = 0;b <= 30;b += 1){ cid = collision_point(b*32,a*32,other,1,1); file_text_write_real(id_pliku,cid.id ); } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 21 Maja 2012 Administratorzy Udostępnij Opublikowano 21 Maja 2012 Odczyt plików w GM jest baaaaardzo wolny. Dopiero w GM:Studio 1.1 albo 1.2 zostanie to poprawione, że zamiast czytać bajt bo bajcie, będzie ładować plik do pamięci i tylko zwracać odpowiednie fragmenty do których jest szybki dostęp. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 21 Maja 2012 Udostępnij Opublikowano 21 Maja 2012 A co w przypadku gdy plik będzie naprawdę duży? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 21 Maja 2012 Udostępnij Opublikowano 21 Maja 2012 Będzie zmuła i znowu ludzie zaczną wysypywać raportami o bugach xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 21 Maja 2012 Administratorzy Udostępnij Opublikowano 21 Maja 2012 Sprawdź w 39dll, on tak czyta pliki :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 21 Maja 2012 Udostępnij Opublikowano 21 Maja 2012 @EDIT @up szybszy :P A może użyć jakiegoś DLL'ka, do zrobienia czegoś takiego, jak napisał gnysek. będzie ładować plik do pamięci i tylko zwracać odpowiednie fragmenty do których jest szybki dostęp. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 22 Maja 2012 Udostępnij Opublikowano 22 Maja 2012 ether moze takie cuda rowniez, ba, nawet szybciej - o ile pamietam, 39dll nadal kopiuje bufory, ktore ma obslugiwac i nadal czyta plik fragmentami, zamiast zaladowac calosc, lub jakiegos wiekszego chunka :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 29 Maja 2012 Autor Udostępnij Opublikowano 29 Maja 2012 Próbowałem zainitzializować ether, ale wyskakuje mi taki błąd: "Cannot initialize GMapi module!" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 29 Maja 2012 Udostępnij Opublikowano 29 Maja 2012 GM8.1? GMapi nie działa na nim. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 29 Maja 2012 Autor Udostępnij Opublikowano 29 Maja 2012 Tak mam Game Marker 8.1. Czy to znaczy, że nie mogę używać etheru? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 29 Maja 2012 Udostępnij Opublikowano 29 Maja 2012 Niestety nie możesz, GMapi działa na wersji GM'a 6.1(chyba) do 8.0, a ether korzysta z tego. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 29 Maja 2012 Autor Udostępnij Opublikowano 29 Maja 2012 Czyli do ładowania mapy mam używać dll? Znam c++ czy mogę wczytywać za pomocą biblioteki fstream? A gdyby każdy fragment miał osobny plik byłoby szybciej? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
adam014 Opublikowano 29 Maja 2012 Udostępnij Opublikowano 29 Maja 2012 W minecraftopodobnej jakiejś niemieckiej grze były chunki zrobione na oddzielnych plikach. Ja bym robił na jednym i wczytywał tylko potrzebny fragment w zależności od położenia gracza. 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ę