Skocz do zawartości
  • 0
Danieo

Błąd w HTML5

Pytanie

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

12 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

Przecież show_debug_message() w HTML5 to nic innego jak console.log() ... Fervi, nie siej zamętu.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

Skomentowałem to co dodałem i powoli usuwałem komentarze. Gra się wysypuje przy:

GML
draw_text(x+50, y+50, caption);

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

Algorytmem oblicz środek. Nawet nie wiedziałem, że taka funkcja jest XD

 

string_width(blabla)/2

 

Fervi

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

Ustaw font. Na siłę na samym początku ustaw font na jakiś własny. To jest znany błąd.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0
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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×