#6. Zmierz mój czas!

Hej! Witam ponownie 🙂 Dziś pod lupę weźmiemy klasy GameDotService.

 

W ‘odcinku 5’ 😀 wypisałem jakie rzeczy są do zrobienia w apce na ten tydzień i szybko wziąłem się za najłatwiejszy z tych tasków, czyli pojawienie się kropki w losowym miejscu. Pojawienie się kropki jest w klasie RedDot, więc i do niej nieco zerkniemy. Generalnie coś bardzo prostego, wcześniej miałem tam metody, które ustawiały mi kropkę na środku ekranu, teraz wystarczy dać generowanie liczby z przedziały od x do y, żeby otrzymać losowe miejsce. No i tak zrobiłem, nic skomplikowanego, użyłem do tego metody random z klasy MathUtils od libGDX

/** Returns a random number between start (inclusive) and end (inclusive). */
static public int random (int start, int end) {
        return start + random.nextInt(end – start + 1);
}

I teraz taka zagadka, na którą sam muszę sobie odpowiedzieć, bo ustawienia wysokości i szerokości aplikacji to odpowiednio 700×480, a sprawdziłem sobie z ciekawości jak to wygląda i ….

Tak jak widać oś X czyli wysokość jest o 50px mniejsza i tak samo z osią Y, pytanie.. jak to? No bo przecież ekran mimo wszystko jest w rozmiarze 700×480, no i to jest pytanie na które będę szukać odpowiedzi a jak się dowiem to na pewno napiszę 😀 (wydaje mi się, że coś z viewportem może to mieć wspólnego)

 

Dobra, to losowość za nami, kropka pojawia się losowo X razy( póki co 5 x) działa!… Co dalej? Dalej… dalej.. jakiś licznik do mierzenia czasu. O! to jest to 😀 Czyli jak ja to widzę?

  1. Pojawia się kropka
  2. Odpala się licznik(gdzieś w tle)
  3. Kropka została naciśnięta
  4. Licznik się zatrzymuje
  5. Po skończonej grze pojawia się wynik 🙂

Do dzieła! Co jest potrzebne? No jakiś pomiar czasu i oczywiście jak zawsze libGDX ma dla nas odpowiednią klasę, czyli TimeUtils.  Mała klasa, 6 metod, mnie interesują tylko dwie – millis i timeSinceMillis. Pierwsza tak właściwie zwraca nam metodę currentTimeMillis() z klasy System, ta za to:

/** @return the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC. */

 

Czyli zwraca nam róźnicę zmierzoną w milisekundach, pomiędzy czasem obecnym a datą wyżej :P, do tego dokładamy drugą metodę gdzie jako parametr podajemy nasz odmierzony czas, a druga metoda zwraca róźnicę czasu w milisekundach od pojawienia się kropki do momentu jej naciśnięcia. I to wszystko, teraz wystarczy zrobić metody na najszybszą, najwolniejszą i średnią reakcję i działa! (ps. już to zrobiłem – tylko, że zaraz liga mistrzów się zaczyna więc trzeba kończyć to pisanie)

 

Muszę sam siebie zganić, bo mogłem zacząć pisać spokojnie godzinę wcześniej i bym wszystko opisał ‘ładniej’ ale jest jak jest , trzeba zaakceptować 😀 . Lecę oglądać ligę mistrzów i jak zawsze, do usłyszenia kolejnym razem!

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *