Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tworzenie czasu
Forum PHP.pl > Forum > Przedszkole
licha
od kilku dni dla zabawy tworzę sobie klona pewnej gry przeglądarkowej i w końcu natrafiłem na problem nie do przejścia. Zastanawiam się jak napisać skrypt który będzie obliczał dany dzień w tej grze na podstawie algorytmu : 8 h = 24 h w grze. Jak według tego obliczyć minuty ?
Nie proszę o gotowy skrypt lecz o jakiś pomysł i drobne wskazówki jak to napisać
Tuminure
Ja bym zrobił to sprawdzając różnicę czasu.

A trochę bardziej opisowo...
Przypisałbym na stałe "czas zero", który oznaczałby początek gry. Powiedzmy, że jest to 1 sierpnia 00:00:00.
Następnie po prostu brałbym obecny czas i sprawdzał różnicę od "czasu zero". Powiedzmy, że sprawdzamy czas gry 2 sierpnia 06:00:00. Różnica to 1 dzień i 6h, czyli 30h, czyli 1800 minut. Teraz po prostu mnożę przez 3 (ponieważ czas w grze płynie 3 razy szybciej). Wychodzi, że w grze minęły 4 dni, czyli 90h, czyli 5400 minuty.
Shido
  1. <?php
  2. function to_real($time, $day)
  3. {
  4. $day = $day*60;
  5. $scale = $day/1440;
  6. return round($time*$scale);
  7. }
  8. ?>

Czymaj.
Powinno działać.
Wywołujesz funkcje w ten sposób:
  1. $min = to_real(50, 8);

Gdzie 50 to ile minut w grze, a 8 to ile realnych godzin w grze na dobę w grze.
Wynik daje w realnych minutach.
W tym wypadku zrobi coś takiego:
  1. function to_real(50, 8)
  2. {
  3. 8h*60min = 480min
  4. 480min/1440min = 0.333333333333min [1440min = 24h]
  5. 50min * 0.333333333333min = 16.6666666667min
  6. round(16.6666666667min) = 17min.
  7. }

Czyli 50 minut w grze gdzie doba trwa 8h wynosi 17 realnych minut.
Wynik zaokrągla, ale możesz sobie to wywalić i dalej jakoś rozwinąć ta funkcję.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.