Skocz do zawartości

Aktualny czas w grze?


Lordis

Rekomendowane odpowiedzi

Witam!

 

Mam problem nie wiem jak zrobić by gra była "aktywna" gdy jest wyłączona.

To znaczy robie gre typu tamagotchi i chce zrobić coś takiego żeby w niej był mieżony prawdziwy czas i wegłóg prawdziwego czasu spadały głód, rozrywka, higiena itd. Znaczy że np. włączam gre o 8.00 rano daje zwierzakowi jeść i zamykam gre, włączam ją wieczorem o 21.00 i moje zwierzątko jest głodne.

 

 

Z góry dzięki :thumbsup:

Odnośnik do komentarza
Udostępnij na innych stronach

No własnie mi mniej więcej o to chodzi że przy zamknięciu gry i przy otwieraniu będzie sprawdzał daty i jaka będzie różnica między nimi tak mocno zpadną potrzeby peta. ale jak sprawdzać aktualny czas w gm? dajcie jakiś kod na to.

Albo przykład to bym był baaaardzo wdzięczny :D

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki własnie ją znalazłem i teraz rozkminiam co do czego :P

ale nie moge znaleść żeby mi pokazało aktualny czas. :/

 

 

Znalazłem coś takiego:

 

date_time_string(date) - Returns a string indicating the given time in the default format for the system.

 

ale co mam dać w (date) ?

 

 

bo robie tak

 

time=date_time_string(1)

 

i w draw daje żeby pokazywało zmienną time

i pokazuje mi coś takiego "00:00:00"

Odnośnik do komentarza
Udostępnij na innych stronach

spróbuj tak:

GML
draw_text(8,8,"rok: "+string(date_get_year(date_current_datetime()))+" miesiąc: "+string(date_get_month(date_current_datetime()))+" dzień: "+string(date_get_day(date_current_datetime()))+" "+string(date_get_hour(date_current_datetime()))+":"+string(date_get_minute(date_current_datetime())));

a co do twojej metody:

GML
time=date_time_string(date_current_time())

sprawdź, czy zadziała.

wyświetlanie godziny:

GML
draw_text(8,8,string(date_time_string(date_current_time())));

 

edit: pierwszy skrypt poprawiony

Odnośnik do komentarza
Udostępnij na innych stronach

current_year* The current year.

current_month* The current month.

current_day* The current day.

current_weekday* The current day of the week (1=sunday, ..., 7=saturday).

current_hour* The current hour.

current_minute* The current minute.

current_second* The current second.

 

Myślę że to będzie wygodniejsze w użyciu.

 

Co do zapisywania i wczytywania daty to użyj plików ini.

Masz je ładnie opisane na GMC w dokumentacji.

Zrób sobie sekcje "Czas" oraz klucze

"godziny", "sekund", "minuty", itp.

Odnośnik do komentarza
Udostępnij na innych stronach

Mam kolejny problem mianowicie. Wiem jak sprawdzać date, godzine itd, wiem jak wczytywać zmienne z pliku .ini

ale nie wiem jak go "aktualizować" w sięsie jak coś do niego zapisać. To znaczy tak. Mam 3 zmienne w pliku .ini

GML
dzien1=0

godziny1=0

minuty1=0

gdy włączam gre widze że są równe 0 i mam guzik który robi kod

GML
dzien1=10

godzina1=15

minuta1=20

zmienne zmieniają się w grze ale po zrestartowaniu gry znów są równe 0.

 

i tu moje pytanie ja zrobić by podczas gry można było zapisywać zmienne do pliku.

Odnośnik do komentarza
Udostępnij na innych stronach

Teraz ciągle nad tym kombinuje i kombinuje i już zrobiłem tyle

GML
ini_open('config.ini');

ini_write_string('TIME','zmienna1','czas1');

ini_write_string('TIME','zmienna2','czas2');

ini_close()

 

i działanie jest takie ze mi zapisuje do pliku tekst:

[TIME]

zmienna1=czas1

zmienna2=czas2

 

na razie tyle wykombinowałem ale jescze nie próbowałem dawać pod tam zmiennych więc nie wiem czy to wogóle zadziała.

A jakie są wasze pomysły na to?

Odnośnik do komentarza
Udostępnij na innych stronach

BOOOOŻE !

 

teraz jak już zrobiłem w taki sposób jak ty mówiłeś

GML
ini_open('game_time.ini');

ini_write_real('TIME','dzien1',czas_dzien);

ini_write_real('TIME','godzina1',czas_godzina);

ini_write_real('TIME','minuta1',czas_minuta);

ini_close()

 

To teraz nie moge tego otworzyć za pomocą skryptu

GML
execute_file('game_time.ini')

 

a jak wpisuje

GML
ini_open('game_time.ini');

ini_read_real('TIME','dzien1',dzien1);

ini_read_real('TIME','godzina1',godzina1);

ini_read_real('TIME','minuta1',minuta1);

ini_close()

 

to nie podctawia mi wartości z plików pod zmienne dzien1,godzina1,minuta1

 

 

EDIT:

 

Miał bym wielką prośbę żeby mi ktoś zrobił przykład z wczytywaniem i zapisywaniem zmiennych z pliku.

dobrze by było gdyby było robione tym sposobem ale może byś innym.

Odnośnik do komentarza
Udostępnij na innych stronach

przykładu ci nie zrobię, ale:

GML (wczytywanie)
ini_open('game_time.ini');

dzien1=ini_read_real('TIME','dzien1',666);

godzina1=ini_read_real('TIME','godzina1',666);

minuta1=ini_read_real('TIME','minuta1',666);

ini_close()

Odnośnik do komentarza
Udostępnij na innych stronach

Rozwaliłeś mnie po raz drugi xD

Coś ty to chciał wczytywać za pomocą

execute_file('game_time.ini')

?

Lol xD

 

Co do przykładu to wydaje mi się, że wiele przykładów na GMC pokazywało zapisywanie i wczytywanie z pliku. Chociażby edytory leveli itp :P

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki o tym nie pomyślałem zeby dać zmienną równą ini_read...

A co do zmiany daty to w kazdym symulatorze się da zmienic i to działa tak jak napisał wyżej ZeroXbot.

A co do edytowania i podrabiania daty to nie widze zadnego zelu i sęsu, Date będe zapisywać w pliku po to że jak włącze gre po paru dodzinach to program będzie obliczał czasu od ostatniego uruchomienia i będzie np. nasz zwierzak głodny xD czy coś. A więc zmiana daty chyba nie będzie miała nic na celu chyba tylko zbugowanie gry :P

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...