Witam. Jestem tu nowy i na wstępie chciałbym zadać pytanie (wiem, wiem nawet się nie przywitałem jeszcze). Tworzyłem sporo czasu temu dużo w GMie, jednakże ponieważ trochę już minęło odkąd nie zaglądałem do tego programu, troszkę mi się zapomniało. :)
Otóż: Chcę zrobić odliczanie czasu (w sensie: rundy w moim nowym projekcie będą ograniczone czasowo), przy czym czas miałby być wczytywany z zewnętrznego pliku .ini.
Na początek, dla testu dawałem różne wartości bezpośrednio w programie i było "cacy". Oto kod którego używałem (wszystko w 1 obiekcie):
Create:
alarm[0]=30;
global.minutes=5; //wpisywałem tu rózne wartości i działało
global.seconds=0; //tu też
alarm[0]:
global.seconds-=1;
alarm[0]=30;
Step:
if(global.seconds=-1)
{
global.minutes-=1;
global.seconds=59;
}
if(global.minutes=-1) game_end(); //powinno przechodzić do końca rundy i podsumowania, ale tego jeszcze nie zrobiłem, rozwiązanie kończące grę jest tymczasowe
Draw (ale to raczej nas nie interesuje) :
draw_text(512,y,string(global.minutes)+":"+string(global.seconds));
Aby teraz przerobić powyższy kod na wczytywanie z .ini wykonałem co następuje:
1. Z create w/w obiektu usunąłem global.minutes i global.seconds
2. W obiekcie "ini", którego używam do wczytywania wszystkich wartości z pliku .ini dopisałem następujący kod:
ini_open("config.ini");
[...]
global.seconds=ini_read_string("round","seconds","0");
global.minutes=ini_read_string("round","minutes","10");
ini_close();
[...] to wycięty fragment, który nie powinien nas interesować (bo wczytuje co innego i wszystko działa ładnie.
Po dokonianiu tych zmian, gra się włącza, ale zaraz wyskakuje błąd dot. step obiektu liczącego czas:
ERROR in
action number 1
of Step Event
for object Time:
Error in code at line 1:
if(global.seconds=-1)
^
at position 19: Cannot compare arguments.
Używam GM 8.0.
Dlaczego tak się dzieje? Liczę na odpowiedź :)
---
BTW, posta musiałem napisać w notatniku i wkleić do edytora, wasz edytor ma jakieś problemy i nie wyswietla kursora tekstu, nie pozwala też na zmianę jego pozycji i kasowanie czegoś, co nie jest na końcu.