Skocz do zawartości
  • Ogłoszenia

    • Uzjel

      Nowa wersja forum   05.08.2017

      Pewnie widać, że wprowadziliśmy nową wersję forum. Skok z wersji 2 do 4 był dosyć trudny i musimy tu trochę posprzątać. Dajcie nam trochę czasu ~Administracja
    • Uzjel

      GMClan wrócił!   12.08.2017

      GMClan.org już działa, więc jeżeli ktoś wchodził przez adres forum.gmclan.org to może już wrócić do starych zwyczajów. Jeżeli strona wam się nie wyświetla to wyczyście cache i ciasteczka.
  • 0
MetalowyNerd

Problem z szybkim tappingiem na Androidzie

Pytanie

Witam. Mam niby drobny problem z szybkim tappingiem. Chodzi o to, że w grze trzeba "klikać" możliwie najszybciej, jak tylko gracz potrafi. Problem z tym jest taki, że nawet, jeśli dodam do startowego obiektu w Create Event linię: "device_mouse_dbclick_enable(false);", to fon i tak łapie lagi po krótkim czasie i gdy przestanę szybko "klikać", gra jeszcze przez kilka sekund "zbiera" (jakby z opóźnieniem) dotyki na ekranie. Nie wiem już, jak to mogę naprawić. Myślałem o tym, żeby program (jeśli nie nadąża), pomijał dotyki, ale nie mam pojęcia, jak tego dokonać. Niby pierdoła, a jednak nigdzie nie znalazłem na to odpowiedzi.

 

W kodzie dodałem też jakby limit obiektów, odpowiadających za dotknięcia (jeśli jest mniej, niż 8 takich obiektów, przy dotknięciu, utwórz kolejny), ale i to nie pomaga. Obiekty takie znikają zaraz po wykonaniu poleceń ze swojego Create Event. Pomóżcie, bo projekt stoi przez pierdołę, a nigdzie (czy to po angielsku, czy polsku) nie mogę znaleźć pomocy...

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

2 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Threef    4

Rozwiązanie to używać tylko pojedynczego kliknięcia ale mierzyć czas pomiędzy kliknięciami. Jeżeli jest dostatecznie szybki to uznawać zę było to poprawne podwójne kliknięcie.

 

GML (create)
click_timer=0

 

GML (step)
if(mouse_check_pressed(mb_left)) {

if(click_timer+220000<get_timer()) {

//Poprawne podwójne kliknięcie

}

click_timer=get_timer()

}

 

get_timer() to funkcja mierząca milisekundy od uruchomienia gry. Idealnie się sprawdza przy wszystkich licznikach. Dostosuj wartość 220000 do takiej jaka będzie Ci pasować. 220000 to 0.22 sekundy.

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

×