TO_mek Opublikowano 19 Marca 2011 Udostępnij Opublikowano 19 Marca 2011 Witam! Szukam prostego rozwiązania zabezpieczenia plików graficznych ładowanych dynamicznie w trakcie gry. Szukałem też bardziej zaawansowanych ale wszelkie przykłady dotyczą GM6.1 a od tego czasu sporo się pozmieniało i przykłady w GM8 nie działają. Najprostsze co przyszło mi do głowy to zmiana rozszerzenia plików *.jpg na jakieś *.dat albo *.res albo cokolwiek innego ale niestety GM nie rozpoznaje ładowanych plików po strukturze pliku tylko standardowo po rozszerzeniu (czyli jest tak samo prymitywny jak sam windows, inne systemy m.in. Amiga OS rozpoznaje pliki po strukturze ale to już odrębny temat). Czyli taki kod: GML tlo:=working_directory+"\room\B000.jpg" background_replace(tlogm, tlo, 0, 1); po zmianie nazwy pliku B000.jpg na B000.dat i kodu na taki: GML tlo:=working_directory+"\room\B000.dat" background_replace(tlogm, tlo, 0, 1); nie działa. Macie jakiś prosty sposób na przynajmniej tak słabe zabezpieczenie ładowanej grafiki? A może coś bardziej złożonego ale nie powodującego opóźnień ładowania. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 19 Marca 2011 Udostępnij Opublikowano 19 Marca 2011 Tu masz jeden sposób http://www.gmclan.org/index.php?czytajart=10 a jak chcesz tak jak piszesz to po prostu dynamicznie skopiuj plik i zmień rozszerzenie po czym wgraj do gm i skasuj kopie, Której metoda chyba też jest w linku opisana :3 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TO_mek Opublikowano 19 Marca 2011 Autor Udostępnij Opublikowano 19 Marca 2011 Tu masz jeden sposób http://www.gmclan.org/index.php?czytajart=10 To znam ale zmyliły mnie komentarze pod artykułem. W międzyczasie przeczytałem go jeszcze raz i akurat to co potrzebuję czyli zmiana nagłówka plików graficznych jest niezależna od wersji GMa bo w ósemce jest tak samo. Właśnie kończę robienie skryptu pasującego do moich potrzeb który koduje i dekoduje pliki "w locie". Ciekawe jaki to będzie miało wpływ na prędkość działania i wczytywania grafiki na starych kompach i netbookach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 19 Marca 2011 Udostępnij Opublikowano 19 Marca 2011 Jeżeli potrzebujesz silniejszego algorytmu zahashuj bitmapę manipulując strukturą (file_bin_*) metodą xor ze zmiennym kluczem. Tylko szybkość nie będzie zbyt imponująca. Może zarzucę przykładem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TO_mek Opublikowano 19 Marca 2011 Autor Udostępnij Opublikowano 19 Marca 2011 Jeżeli potrzebujesz silniejszego algorytmu zahashuj bitmapę manipulując strukturą (file_bin_*) metodą xor ze zmiennym kluczem. Tylko szybkość nie będzie zbyt imponująca. Może zarzucę przykładem. Jeśli będziesz miał chwilkę to zarzuć :) Zrobiłem kodowanie i dekodowanie podobnie jak w artykule Ranma_mana ale mam jedno pytanie. Czy jest sposób na to aby nie tworzyć odkodowanego pliku tymczasowego z prawidłowym rozszerzeniem gdzieś na dysku? Czyli inaczej czy można najpierw odczytać "zakodowany" plik do pamięci i operacje zmiany zawartości pierwszych kilku bajtów zrobić bezpośrednio w pamięci a z niej "wgrać" taki odkodowany plik do zasobów (jako background)? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 19 Marca 2011 Administratorzy Udostępnij Opublikowano 19 Marca 2011 Trochę to śmieszne, ale możesz 39dllem czytać grafiki ze zmienionym nagłówkiem - naprawdę świetnie śmiga, sprawdzone (fakt, że online'owa biblioteka jest do innych rzeczy, ale przynajmniej jest wygodna). Chyba, że GMowe file_bin jest wystarczająco szybkie (bez bicia się przyznam, nie używałem). 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ę