Danieo Opublikowano 24 Listopada 2016 Udostępnij Opublikowano 24 Listopada 2016 Witajcie! Tworzę sobie swoją grę HTML5. Wszystko pięknie działało do momentu stworzenia menu i obiektów przycisków. Otóż po dodaniu tych rzeczy gdy skompilowałem grę do HTML5 moim oczom ukazało się... nic. Konsola developera wypluwa: Lights Off.js?KFFAC=304512171:1339 Uncaught TypeError: _bb.measureText is not a function(?)_cs._C82 @ Lights Off.js?KFFAC=304512171:1339_j12._Or @ Lights Off.js?KFFAC=304512171:1358_b7 @ Lights Off.js?KFFAC=304512171:165_05 @ Lights Off.js?KFFAC=304512171:33_vB1._T8 @ Lights Off.js?KFFAC=304512171:1506_ub2._T8 @ Lights Off.js?KFFAC=304512171:1405_g22._Cq2 @ Lights Off.js?KFFAC=304512171:1582_g22._xr2 @ Lights Off.js?KFFAC=304512171:1598_g22._Lr2 @ Lights Off.js?KFFAC=304512171:1605_g22._Ia @ Lights Off.js?KFFAC=304512171:1608_hz2 @ Lights Off.js?KFFAC=304512171:1767_Uy2 @ Lights Off.js?KFFAC=304512171:1773_Ry2 @ Lights Off.js?KFFAC=304512171:1758 Lights Off.js?KFFAC=304512171:1339 Uncaught TypeError: _bb.measureText is not a function(?)_cs._C82 @ Lights Off.js?KFFAC=304512171:1339_j12._Or @ Lights Off.js?KFFAC=304512171:1358_b7 @ Lights Off.js?KFFAC=304512171:165_05 @ Lights Off.js?KFFAC=304512171:33_vB1._T8 @ Lights Off.js?KFFAC=304512171:1506_ub2._T8 @ Lights Off.js?KFFAC=304512171:1405_g22._Cq2 @ Lights Off.js?KFFAC=304512171:1582_g22._xr2 @ Lights Off.js?KFFAC=304512171:1598_g22._Lr2 @ Lights Off.js?KFFAC=304512171:1605_g22._Ia @ Lights Off.js?KFFAC=304512171:1608_hz2 @ Lights Off.js?KFFAC=304512171:1767_Uy2 @ Lights Off.js?KFFAC=304512171:1773_Ry2 @ Lights Off.js?KFFAC=304512171:1758 Link do kodu JS gry: KOD Jednak co zabawne nie jest to błąd kodu gry bo gdy zmieniam eksport na np. Windows wszystko działa normalnie. Obiekt Button: GML Information about object: Button Sprite: button_spr Solid: false Visible: true Depth: 0 Persistent: false Parent: Children: Mask: No Physics Object Create Event: execute code: load_room = menu; provide = 0; caption = "Button"; Mouse Event for Left Button: execute code: global.gameMode = provide; room_goto(load_room); show_debug_message("Select game mode: "+string(global.gameMode)); Draw Event: execute code: draw_self(); draw_set_halign(fa_center); draw_text(x+50, y+50, caption); Menu Room Creation Code: GML var casual = instance_create(view_wport[0]/2, 100, Button); casual.caption = "Casual"; casual.provide = 1; casual.load_room = game; var normal = instance_create(view_wport[0]/2, 200, Button); normal.caption = "Normal"; normal.provide = 2; normal.load_room = game; var time_a = instance_create(view_wport[0]/2, 300, Button); time_a.caption = "Time Attack"; time_a.provide = 3; time_a.load_room = game; Game Room Creation Code: GML randomize(); instance_create(0, 0, gameController); switch(global.gameMode) { case 1: instance_create(0, 0, Casual); break; case 2: instance_create(0, 0, Normal); break; case 3: instance_create(0, 0, Time); break; } Jak widać nie używam żadnych egzotycznych funkcji ani nic takiego. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 24 Listopada 2016 Administratorzy Udostępnij Opublikowano 24 Listopada 2016 1. Wyczyść cache GM miotełką 2. A jak zakomentujesz te linijki to znów działa? Spróbuj wtedy część odkomentować (sprawdzając, czy na Windowsie po odkomentowaniu działa) i może znajdziesz która funkcja powoduje problem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 24 Listopada 2016 Udostępnij Opublikowano 24 Listopada 2016 GMHTML5 to kpina xd Wyczyść Cache, to często rozwiązuje problemy, ale boję się o tę funkcję show_debug_message Zamień na zwykły show_message Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 24 Listopada 2016 Administratorzy Udostępnij Opublikowano 24 Listopada 2016 Przecież show_debug_message() w HTML5 to nic innego jak console.log() ... Fervi, nie siej zamętu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danieo Opublikowano 24 Listopada 2016 Autor Udostępnij Opublikowano 24 Listopada 2016 Skomentowałem to co dodałem i powoli usuwałem komentarze. Gra się wysypuje przy: GML draw_text(x+50, y+50, caption); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 24 Listopada 2016 Udostępnij Opublikowano 24 Listopada 2016 Ja używam draw_text_ext i na pewno działa; spróbuj z jego pomocą Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danieo Opublikowano 24 Listopada 2016 Autor Udostępnij Opublikowano 24 Listopada 2016 Zmiana draw_text na inną funkcję draw_text_* nie pomogło. Dopiero usunięcie draw_set_halign(fa_center); odwiesiło grę. Gdzie draw_set_halign samo jak istniało bez draw_text działało. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 24 Listopada 2016 Udostępnij Opublikowano 24 Listopada 2016 Algorytmem oblicz środek. Nawet nie wiedziałem, że taka funkcja jest XD string_width(blabla)/2 Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 24 Listopada 2016 Udostępnij Opublikowano 24 Listopada 2016 Ustaw font. Na siłę na samym początku ustaw font na jakiś własny. To jest znany błąd. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danieo Opublikowano 25 Listopada 2016 Autor Udostępnij Opublikowano 25 Listopada 2016 Takie pytanie. Czy w export HTML5 czas jest liczony jakoś inaczej? Bo coś mi alarmy się nie odpalają a zastąpienie ich tym kodem: GML timer = current_time + 1000; if(timer < current_time) { room_restart(); } nie pomaga. Aczkolwiek tym razem instrukcje zawarte w warunku wykonują się (tylko bez przerwy w czasie). Na windowsie zarówno alarmy jak i powyższy kod działają bez zarzutu. @edit: Z tego co mi się udało na razie dowiedzieć, to timer na HTML5 się nie nastawia (ma wartość 0). Ale w sumie zauważyłem, że z zmianą wartości zmiennej nie tylko zmienna timera ma problem. Zmienna globalna (wbudowana) score też nie ustawia wartości. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 25 Listopada 2016 Udostępnij Opublikowano 25 Listopada 2016 Takie pytanie. Czy w export HTML5 czas jest liczony jakoś inaczej? Bo coś mi alarmy się nie odpalają a zastąpienie ich tym kodem: GML timer = current_time + 1000; if(timer < current_time) { room_restart(); } nie pomaga. Aczkolwiek tym razem instrukcje zawarte w warunku wykonują się (tylko bez przerwy w czasie). Na windowsie zarówno alarmy jak i powyższy kod działają bez zarzutu. @edit: Z tego co mi się udało na razie dowiedzieć, to timer na HTML5 się nie nastawia (ma wartość 0). Ale w sumie zauważyłem, że z zmianą wartości zmiennej nie tylko zmienna timera ma problem. Zmienna globalna (wbudowana) score też nie ustawia wartości. Jak używasz efektów graficznych (cząsteczkowe?) to je wyłącz dla HTML5 Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danieo Opublikowano 25 Listopada 2016 Autor Udostępnij Opublikowano 25 Listopada 2016 Siedzę nad tym od wczoraj i nawet nie pomyślałbym, że to wina cząsteczek... Wszystko działa. Dziękuję Fervi! Naprawdę wielkie dzięki, masz u mnie piwo :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 25 Listopada 2016 Udostępnij Opublikowano 25 Listopada 2016 Niestety GM-HTML5 trzeba testować z 10 razy dokładniej niż inne. W moim projekcje z jakiegoś powodu potrafi wziąć "z dupy" spritey. A dokładnie bierze je, ale nie daje tam gdzie mają być (np. sprite 1 zamiast do obiektu 1 jest w obiekcie 5, bo czemu by nie) Fervi 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ę