Skocz do zawartości

[HTML5] working_directory


TO_mek

Rekomendowane odpowiedzi

Witam!

Czy w HTML5 working_directory działa? Sama ścieżka prowadzi do tej HTML5 folder name (domyslnie html5game) ale przy próbie odczytu zawarości katalogu przeglądarki przechodzą w stan zamrożenia ;)

GML
var _newfile;

_newfile = file_find_first( working_directory + "\sciezka\*.*", 0 );

do

{

/*

show_message(_newfile);

*/

_newfile = file_find_next();

} until ( _newfile == "" )

 

Potrzebuje załadować z katalogu po stronie serwera wszystkie pliki obrazków, które będą co jakiś czas dokładane na serwer.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

W HTML5 nie ma systemu plików na komputerze tak btw.. Przeglądarka (bo to ona sandboxuje grę) daje jedynie dostęp do tzw. Local Storage gdzie można zapisywać wartości klucz=wartość podobnie jak z cookies, ale w większej ilości. GM:S zapisiuje w ten sposób pliki INI (nazwapliku=hashowana_wartość) a wszystkie inne sposoby odczytu niestety mogą nie działać (wynika to ze specyfikacji W3C, HTML5 i JavaScript).

Odnośnik do komentarza
Udostępnij na innych stronach

W HTML5 nie ma systemu plików na komputerze tak btw. Przeglądarka (bo to ona sandboxuje grę) daje jedynie dostęp do tzw. Local Storage gdzie można zapisywać wartości klucz=wartość podobnie jak z cookies, ale w większej ilości. GM:S zapisiuje w ten sposób pliki INI (nazwapliku=hashowana_wartość) a wszystkie inne sposoby odczytu niestety mogą nie działać (wynika to ze specyfikacji W3C, HTML5 i JavaScript).

 

Ale mnie interesuje odczyt po stronie serwera. Chcę aby ładować pliki np. sprajtów czy backgroundów dynamicznie z katalogu na serwerze na którym będzie gra. Do tego katalogu będą dodawane aktualizacje obrazków po ftp i chciałbym aby gra odczytywała najpierw nazwy tych plików z danego katalogu na serwerze a następnie je kolejno ładowała i wyświetlała.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

sprite_add() i odpowiedni event HTTP. Jest w dokumentacji opisane :) Jeśli chcesz odczyt nazw plików, to również zapytanie HTTP (GET/POST) do serwera niestety i zwracanie danych np. JSONem.

 

EDIT: nie korzystanie z texture pages (atlasów) jest bardzo nieoptymalne i odradzam korzystania z niego, zwłaszcza bez włączonego WebGL.

Odnośnik do komentarza
Udostępnij na innych stronach

sprite_add() i odpowiedni event HTTP. Jest w dokumentacji opisane :) Jeśli chcesz odczyt nazw plików, to również zapytanie HTTP (GET/POST) do serwera niestety i zwracanie danych np. JSONem.

 

EDIT: nie korzystanie z texture pages (atlasów) jest bardzo nieoptymalne i odradzam korzystania z niego, zwłaszcza bez włączonego WebGL.

 

Co do texture pages to niestety gra wymagałaby za każdym razem rekompilacji. Co do ładowania grafik i plików to znalazłem coś takiego:

 

Create

GML
// Load the avatar name (fails on IE)

avatar_name = "<Unknown>";

http_get("http://89.25.186.53/dundee/avatar.txt");

 

// Load the avatar image (fails everywhere)

avatar_image = back_avatar;

avatar_new = background_add("http://89.25.186.53/dundee/avatar.png", false, false);

 

Image Loaded

GML
if ( ds_map_find_value(async_load,"status") < 0)

{

show_message("Error in loading avatar: " + string(ds_map_find_value(async_load,"status")));

exit;

}

avatar_image = avatar_new;

 

HTTP

GML
if ( ds_map_find_value(async_load,"http_status") != 200)

{

show_message("Error in loading name: " + string(ds_map_find_value(async_load,"http_status")));

exit;

}

 

avatar_name = ds_map_find_value(async_load,"result");

 

Jeśli chodzi o grafikę to działa ale co do zaczytywania zawartości z pliku tekstowego to już nie bangla bo przykład jest nieprawidłowy. Rozumiem, że aby odczytać/zapisywać dane z/do pliku musiałbym to zrobić za pomocą parametrów przekazywanych metodami get/post i zatrudnić do tego jeszcze php który mi to wystawi w postaci parametrów czy może GM ma coś dodatkowo wbudowanego?

Odnośnik do komentarza
Udostępnij na innych stronach

Bez PHP też dasz radę :) Tu masz przykład jak czytać JSONa. https://gmclan.org/index.php?plik=227 - ale możesz sobie też czytać TXT :)

 

Moment bo kombinuję i w końcu do mnie dotarło, że sam serwer musi generować dane JSON, tak, a zwykłe dodanie do adresu url nazwy pliku txt zawierające dane w formacie JSON (albo innym) nie zadziała? Czyli zawartość pliku muszę wysłać po stronie serwera i odebrać jako parametr (ze znakiem ?) czy jeszcze inaczej?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Możesz jak chcesz :) Możesz wrzucić po prostu plik txt z zawartością JSON i tez spoko.

Możesz nawet zwykły TXT tylko musisz go po stronie GM potem sobie jakoś odczytać, ale w tym evencie dostajesz odpowiedź jako stringa. Proponuję JSON, bo potem za pomocą json_decode() tego stringa w ds_mapę Ci zamieni, a dzięki garbage collectorowi ds_map dodanemu jakiś czas temu, wszystkie podmapy automatycznie są oznaczane przez ds_list_mark_as_xxx i usuwane jak kasujesz nadrzędną.

Odnośnik do komentarza
Udostępnij na innych stronach

Możesz jak chcesz :) Możesz wrzucić po prostu plik txt z zawartością JSON i tez spoko.

Możesz nawet zwykły TXT tylko musisz go po stronie GM potem sobie jakoś odczytać, ale w tym evencie dostajesz odpowiedź jako stringa. Proponuję JSON, bo potem za pomocą json_decode() tego stringa w ds_mapę Ci zamieni, a dzięki garbage collectorowi ds_map dodanemu jakiś czas temu, wszystkie podmapy automatycznie są oznaczane przez ds_list_mark_as_xxx i usuwane jak kasujesz nadrzędną.

 

 

Kurcze cały czas miałem ok ale okazuje się, że uruchamiając lokalnie http://127.0.0.1:51268/index.html w statusie było 0 i nie pojawiały się dane natomiast po wrzuceniu na publiczny IP wszystko ładuje się prawidłowo.

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ę...