DangBean Opublikowano 29 Października 2014 Udostępnij Opublikowano 29 Października 2014 Jeśli skompiluję grę do windows to networking ładnie hula. Można grać na dwa kompy. Jeśli skompiluję do HTML5 - ni hu hu. :boxed: Może jakiś trick potrzebny? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 30 Października 2014 Administratorzy Udostępnij Opublikowano 30 Października 2014 A jak odpalasz grę w HTML5? Z dysku czy z serwera? Z dysku ( file:/// ) nie zadziała na 10000% :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DangBean Opublikowano 30 Października 2014 Autor Udostępnij Opublikowano 30 Października 2014 Lightiego mam postawionego lokalnie na kompie. W przeglądarce grę odpalam przez localhost:8080 (tak mam LightTPD skonfigurowany). Tak na chłopski rozum to powinno działać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 31 Października 2014 Administratorzy Udostępnij Opublikowano 31 Października 2014 Ok, wystarczy w sumie zajrzeć do dokumentacji programu: http://docs.yoyogames.com/source/dadiospic...king/index.html NOTE: These functions are not currently available for the HTML5 target module. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DangBean Opublikowano 31 Października 2014 Autor Udostępnij Opublikowano 31 Października 2014 Ok, wystarczy w sumie zajrzeć do dokumentacji programu: http://docs.yoyogames.com/source/dadiospic...king/index.html Wielkie dzięki Gnysek! Się człowiek namęczy, a tu takie buty. No i zawsze wszystkim mówię - dokładniej czytać, czytać dokładniej... Lustro se muszę kupić :mellow: . BTW przydałaby się lista rzeczy, które nie działają w HTML5. Masz problemy w programie => QQ na listę i wiesz. Z moich (niezbyt bogatych) doswiadczeń to: - mp_linear_path_object() - draw_getpixel(x,y); - Opera, IE - draw_text - na domyślnym foncie w FOXie - script_get_name() - IE - draw_roundrect_color() - obsługa klawiatury z poziomu javasript extensions - networking Szczególnie bolesne jest to script_get_name, ale obiecali, że kiedyś naprawią. Może ktoś zna jak obejść niedziałające script_get_name? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 1 Listopada 2014 Udostępnij Opublikowano 1 Listopada 2014 Może ktoś zna jak obejść niedziałające script_get_name? Możesz zawsze zapisać nazwy skryptów w kontenerze tj. "key-value pair", np. ds_map. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DangBean Opublikowano 2 Listopada 2014 Autor Udostępnij Opublikowano 2 Listopada 2014 Możesz zawsze zapisać nazwy skryptów w kontenerze tj. "key-value pair", np. ds_map. Zapisać w kontenerze można, ale najpierw trzeba znać nazwę tego skryptu. Jesli napiszesz skrypt, który nazwiesz np. GML score_error_callback_service(), to po przekompilowaniu do HTML5 będzie się on nazywał np. _G14x albo _J23 :rolleyes: . Taką wartość zwróci GML script_get_name(score_error_callback_service), co pozwala zaimplementować callback z javascript extension do GMLa. Niestety to nie działa na IE, bo GM używa javascriptowej metody replace, która w Microsofcie musi działać po swojemu, a nie po bożemu (tak sobie troszkę popodglądałem implementację w skompilowanym javascripcie :chris: ). No i qpa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 3 Listopada 2014 Administratorzy Udostępnij Opublikowano 3 Listopada 2014 Klucz "nazwa_skryptu", a wartość to nazwa_skryptu (bez apostrofów) - w ten sposob dostaniesz stringa i ID i wszystko będzie OK. Tylko zamiast script_get_name użyjesz ds_map_find_value(id_skryptu_lub_nazwa); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DangBean Opublikowano 3 Listopada 2014 Autor Udostępnij Opublikowano 3 Listopada 2014 Klucz "nazwa_skryptu", a wartość to nazwa_skryptu (bez apostrofów) - w ten sposob dostaniesz stringa i ID i wszystko będzie OK. Tylko zamiast script_get_name użyjesz ds_map_find_value(id_skryptu_lub_nazwa); Wybacz Gnysek ale albo ja Ciebie nie rozumiem, albo Ty mnie. W czym ma mi pomóc jesli zrobię np.: script_map[? "callback_script"] = callback_script; ? Będę miał ds_map, który dla ozdoby będzie sobie w programie. Z poziomu Javascript extension: iD skryptu jest bezużyteczny, nazwa skryptu taką jaką mam w GML-u też się na nic nie przyda, a i do script_map się nie dostanę. Funkcja javascript API jest asynchroniczna - nie zwraca żadnej użytecznej wartości. Czy nastąpił sukces czy nie - do tego jest potrzebny callback - dlatego parametrami w tym API są nazwy funkcji. Ale jak się przekompiluje GML do HTML5, to nazwa "callback_func" zamienia się w "_d17" albo w jakieś inne "_H7g". Aby callback zadziałał trzeba w parametrze API podać własnie to "_d17" , a nie "callback_func". I do tego właśnie służy script_get_name(). Bo script_get_name zwraca nam właśnie string "_d17". Przykład (trochę uproszczony, ale wszystko wyjaśnia) działający w FF, Chrome i Opera, ale lecący w kosmos na IE: 3 Skrypty w GML-u: GML ///donate_ok(); show_message("Dziękujemy za podarunek."); ///donate_not_ok(); show_message("Dziękujemy, ale nie przyjmujemy Marek NRD."); //odwołanie się z GML-a do javascripta: jsAPI_donate(script_get_name(donate_ok), script_get_name(donate_not_ok)); Funkcje interface w Javascript extension (to nie jest GML): function jsAPI_donate(onSuccess, onFailure){ //tu wołamy zewnetrzne API - nie wiemy jak ono działa - znamy tylko składnię initiateDonateFunction( function () {jsAPI_callBack(onSuccess)}, function () {jsAPI_callBack(onFailure)} ); } //callback to GML function jsAPI_callBack(f_n){ try{ eval( f_n + "()" ); } catch(err){} } Tam jeszcze powinno być oczywiście rozpoznawanie czy to nie jest debug_mode, ale dla przejrzystości wywaliłem. Pytanie - gdzie tu mam wsadzić ową ds_map i w czym ma ona pomóc? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 4 Listopada 2014 Administratorzy Udostępnij Opublikowano 4 Listopada 2014 w tym pliku js: var checked = -1; function jsAPI_donate(onSuccess, onFailure){ initiateDonateFunction( function () {jsAPI_callBack(1)}, function () {jsAPI_callBack(0)} ); } jsAPI_callBack(done) { checked = done; } gmlCheck() { return checked; } GML w step (oczywiście funckaj gmlCheck oraz jsAPI_callBack musi być zdefiniowana w extension): GML var check = gmlCheck(); if (check > -1) { if (check = 1) donate_ok() else donate_not_ok(); jsAPI_callBack(-1); } A żeby cały czas się w step nie wykonywało, można dodać jeszcze jedną zmienną np. czy_sprawdzać i ustawiać na true linijkę przed wywołaniem tego skryptu od API, oraz na false przed ostatnią klamerką w kodzie powyżej i dodać naokoło ifa :) Naokoło, ale da się :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DangBean Opublikowano 4 Listopada 2014 Autor Udostępnij Opublikowano 4 Listopada 2014 Dzięki Gnysek! Niewielu już pamięta jak to drzewiej bywało. Barżo dobra starożytna metoda. Nazywa się polling. Powinno działać. Może być tylko problem jak ktoś szybko klika na "brzuszek pajacyka". W nocy wymysliłem jeszcze jeden sposób. Ale bardziej desperacki. W obu gml-owych funkcjach dodaję na początku zmienne: GML var tmp="brzydkie słowo ok"; //w pierwszej var tmp="brzydkie słowo not ok"; //w drugiej</span> W wywołaniu javascripta piszę po chamsku: GML jsAPI_donate("donate_ok", "donate_not_ok"); Kompiluję do HTML5 i otwieram wynik w notepad++. znajduję "brzydkie słowo" i już wiem jak się nazywają obie funkcje callback. Znajduję string "donate_ok" i ręcznie podmieniam wynikowy js na obfuscatowane nazwy skryptów. Tylko to wymaga takiej akcji przy każdej kompilacji. Jestem leniem, wiec Twoja metoda lepsza :rolleyes: . Z drugiej strony i tak trzeba za kazdym razem ręcznie miętosić ten javascript aby odblokować klawiaturę... Nie mniej poczekam do 06.11 z implementacją. A nuż... 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ę