TO_mek Opublikowano 24 Lutego 2015 Udostępnij Opublikowano 24 Lutego 2015 Witam! Podczas gdy załączę pauzę w grach na androidzie i jednoczesnym zablokowaniu telefonu gra się zawiesza. Po odblokowaniu telefonu jest czarny ekran i grę trzeba ubić. W przypadku jednej pauzę mam w mało elegancki sposób poprzez "show_message('PAUZA)", co w windowsie się sprawdzało. Wiem, że obecnie jest to wg manuala funkcja wyłącznie do debugera więc w innej gierce zrobiłem już "swoją" pauzę: GML global.pauza:=!global.pauza if global.pauza == true { instance_deactivate_all(true); instance_activate_object(zm_glowne_obj); draw_sprite(pauza_spr,0,room_width/2, room_height/2); part_particles_clear(Sname);//Wygaszenie aktywnych partycli effect_clear();//usuwa snieg background_visible[0]:=false; } else { instance_activate_all();// region(0, view_yview[0], room_width, view_hview[0],true); //aktywacja obiektow wewnatrz ekranu background_visible[0]:=true; } Niestety efekt na androidzie jest ten sam. Dodatkowo zauważyłem, że w obecnej wersji GM:S nie wyświetla się sprite z obrazkiem pauzy z pauza_spr (ani na androidzie ani pod winda). Dodatkowo w tej drugiej grze obsługę wyjścia z gry na backspace zrobiłem na asynchronicznym evencie Dialog (msg:=show_question_async('Quit')) i ten komunikat wyświetla się prawidłowo nawet podczas pauzy i efektu "zawieszenia" podczas zablokowania i ponownego odblokowania telefonu pod androidem. Macie pomysł jak przerobić pauzę tak by działała prawidłowo? EDIT: Teraz tak patrzę i sam się zastanawiam jak to ma działać jak aktywny pozostaje jeden obiekt zm_glowne_obj, który nie ma obsługi wyświetlania ekranu. EDIT2: Jednak na androidzie nie następuje zwis tylko gra niczego aktywnie nie wyświetla i zablokowaniu/odblokowaniu gubi ostatnio wyświetlany ekran i jest tylko czarna tło. Jednak ekran dalej jest aktywny i stukając miejsce gdzie się przełącza pauzę, ekran reaguje i gra ponownie zaczyna działać. Swoją drogą dlaczego cokolwiek jest wyświetlane po deaktywacji obiektu odpowiadającego za rysowanie, chyba tylko dla zmyłki :) EDIT3: Pod windą wystarczy na tej pauzie zwinąć grę na pasek i po powrocie gra ma czarne tło (ale też aktywne i da się ją odpauzować na "czuja"). Co ciekawe starsza wersja gry pod windę kompilowana pod GM:HTML5 wyświetla grafikę na pauzie po zwinięciu na pasek włącznie z ikonką pauzy (draw_sprite(pauza_spr,0,room_width/2, room_height/2);). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 25 Lutego 2015 Administratorzy Udostępnij Opublikowano 25 Lutego 2015 A w jakim to jest evencie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TO_mek Opublikowano 25 Lutego 2015 Autor Udostępnij Opublikowano 25 Lutego 2015 A w jakim to jest evencie? W Global Left Pressed obiektu który pozostaje aktywnym. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 26 Lutego 2015 Administratorzy Udostępnij Opublikowano 26 Lutego 2015 No to draw_sprite nie zadziała, skoro ten event trwa ułamek sekundy (i nie jest eventem draw) :) btw. a masz wyłączone draw background color w roomie ? może stąd po minimalizacji ekran się czyści Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 26 Lutego 2015 Udostępnij Opublikowano 26 Lutego 2015 Z twojego opisu wynika, że coś jest źle u Ciebie. Odradzam używanie deaktywacji pod czas pauzy. Jeżeli gra na mobilu straci fokus (zostanie zrzucona, ale nie wyłączona) i zacznie się używać innych aplikacji, to w chwili gdy urządzeniu zabraknie pamięci na obsługę aktywnych aplikacji, twoja gra może się zaciąć na amen. Jeżeli testujesz na słabym urządzeniu, to może to być jedną z przyczyn. Polecam też sprawdzać os_is_paused() prócz naciśnięcia pauzy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TO_mek Opublikowano 3 Marca 2015 Autor Udostępnij Opublikowano 3 Marca 2015 Odradzam używanie deaktywacji pod czas pauzy. Polecam też sprawdzać os_is_paused() prócz naciśnięcia pauzy. No ale wszelkie liczniki, wyświetlanie animacji itp. musi być zatrzymane na czas pauzy, zostawiam jeden obiekt obsługujący "odpauzowanie". Faktycznie brak w nim obsługi wyświetlania czegokolwiek więc nie działa (choć pod windą grafika nie znika i to wprowadza w błąd, mam wyłączone draw background color w roomie więc pewnie z tego powodu rysowanie podczas pauzy zachowuje się nieprzewidywalnie). Zastanawiam się nad obsługą os_is_paused - gdzie to najlepiej umieścić aby było w każdej chwili wywołane. W jaki sposób telefon to obsługuje? W momencie gdy następuje wygaszenie ekranu czy przychodzi rozmowa to aplikacja działa dalej w tle aż napotka obsługę os_is_paused a jedynie wycisza dźwięk a gdy tej obsługi nie ma to się mogą dziać z aplikacją różne dziwne rzeczy? 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ę