Skocz do zawartości

Wczytywanie z pliku


Ignis

Rekomendowane odpowiedzi

Witam. Słyszałem że jak jest załadowane do Game Makera dużo plików (tzn. dźwięków, spritów, itp.) to gra wolno się ładuje i się tnie. Usłyszałem również że można sprawić by ów pliki ładowały się z folderu. Jak to zrobić? Na czym to polega? I widziałem także że w Dużych produkcjach (np. Call of Duty, Soldiers itp.) Są te pliki, tylko że szyfrowane.

Odnośnik do komentarza
Udostępnij na innych stronach

Po pierwsze musisz mieć PRO, bo inaczej to po ptokach. Dla wgrywania dźwięku masz na przykład taki kod:

GML
global.muza=sound_add("muzyka/gra.mid",1,0);

Zmienna global.muza "przechowuje" teraz dźwięk gra.mid z folderu muzyka. A gdybyś miał :

GML
global.muza=sound_add("muzyka/abc/gra.mid",1,0);

to wgrałbyś dźwięk gra.mid z folderu abc, który znajduje się w folderze muzyka. W takim zapisie ważne jest aby pierwszy folder znajdował się w folderze z grą. Jeżeli chcesz się odwołać do pliku, który znajduje się w innym folderze niż gra musisz np odwołać się przez pełną ścieżkę (np "C:/Program Files/Game_Maker7/gra.mid") albo napisać funkcję, która zwróci Ci ścieżkę do szukanego pliku. Tutaj jest ryzyko, że nie wszyscy muszą mięć taką ścieżkę na kompie. Następnie uzupełniasz argumenty. Resztę zasobów wczytujesz w podobny sposób, poczytaj w helpie. Pamiętaj, aby usuwać pliku jak są już Ci nie potrzebne:

GML
sound_delete(global.muza)

Dotyczy to także sytuacji gdy chcesz wgrać nowy dźwięk do tej samej zmiennej:

GML
sound_delete(global.muza)

global.muza=sound_add("muzyka/gra2.mid",1,0);

Jak tego nie zrobisz stracisz dostęp do wcześniejszego wczytanego pliku i w konsekwencji będzie zżerał dodatkową pamięć.

Odnośnik do komentarza
Udostępnij na innych stronach

Te funkcje znajdziesz GML> changing resources są to:

GML
sprite_add(fname,imgnumb,removeback,smooth,xorig,yorig)

sound_add(fname,kind,preload)

background_add(fname,removeback,smooth)

a jeżeli chcesz otworzyć plik tekstowy to: GML > Files, registry, and executing programs

GML
file_text_open_read(fname) //tym otwierasz plik

file_text_read_string(fileid) //tym odczytujesz zawartość 1 wersu w pliku

file_text_read_real(fileid) //tym też

file_text_readln(fileid)//tym przechodzisz do kolejnego wersu

file_text_close(fileid) //po zakończeniu odczytywania wartości musisz ten plik z powrotem zamknąć

/* przydatne mogą być jeszcze*/

file_text_eof(fileid) // sprawdza czy został osiągnięty koniec pliku

file_text_eoln(fileid) //sprawdza czy został osiągnięty koniec wersu</span>

Odnośnik do komentarza
Udostępnij na innych stronach

Szyfrowanie jest zrobic stosunkowo prosto, tak jak odszyfrowywanie. Szybkie to jednak nie jest z uzyciem tylko GMLa.

Mozesz napisac sobie program, w ktorym napiszesz 2 skrypty: szyfrujacy i odszyfrowujacy.

Do szyfrowania i odszyfrowywania mozna uzyc: file_text_open_write, file_text_write_string, file_text_close, string_length, file_text_eof, string_char_at (lub string_replace_all). Ewentualnie takze tablic/list.

Nie bede pisal skryptu szyfrowania, bo wszyscy beda mogli sobie bez problemu odszyfrowac, jesli podam ten skrypt.

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...