menu pauzy w grze - jak zrobic, aby w czasie pauzy nic sie nie wykonywalo w tle
Ostatnio zmodyfikowano 2010-01-30 20:27
dmx81 Temat założony przez niniejszego użytkownika |
menu pauzy w grze - jak zrobic, aby w czasie pauzy nic sie nie wykonywalo w tle » 2010-01-30 01:33:45 witam, jesli administracja uzna, ze to ten sam temat, co wczesniej zalozylem, to prosze o usuniecie,chodzi mi o to, ze kiedy w czasie gry uruchomie menu pauzy - np z opcjami wyjscia z gry, kontynuowania itd - to po powrocie do gry wiele zmiennych "uroslo" a ruchome elementy "nie widzialy" kolizji i pouciekaly z ekranu (chociaz nie wszytskie)
byc moze z takim tytulem w temacie znajdzie sie wiecej chetnych do podpowiedzenia, o co chodzi, ewentualnie prosze o odp w temacie o petli while speed>0, dzieki |
|
eBbi |
» 2010-01-30 07:41:49 może po wyjściu z pętli menu brakuje kilku argumentów i i opuszcza kilka funkcji warunkowych i wchodzi do tych co nie powinien z powodu kolejności. spróbuj wyjść z pętli menu na sam początek głównej pętli za pomocą funkcji goto().
edit: Jeśli nie użyłeś wątków to zadna zmienna funkcja nie zostanie wukonana bez twojej wiedzy ani żadna zmienna nie powinna zmienić swojej wartości. |
|
dmx81 Temat założony przez niniejszego użytkownika |
» 2010-01-30 12:47:05 mam tak: while(!esc) {
while(speed>0) { licznik++; if(unoszenie) platforma.y++; else if(!unoszenie) platforma.y--; }
if(licznik==60) { sekundy++; licznik=0; } if(platforma.y>500) unoszenie=true; if(platforma<100) unoszenie=false; if(pokaz_menu) { menu(); pokaz_menu=false; //menu to petla while(!enter) - wyswietla text// } }
a problem taki, ze bedac w petli w funkcji menu, wykonuja sie instrukcje z petli while(speed>0) licznik rosnie... ale sie nie zeruje platforma opada... ale sie nie odbija do gory czyli o co kaman? (funkcje menu niedawno dodalem, wczesniej bylo bez niej o wszytsko gralo 100%, teraz chcialem dodac menu, a tu zonk) |
|
malan |
» 2010-01-30 13:52:59 Może dodaj speed=0 po pętli while(speed>0). |
|
dmx81 Temat założony przez niniejszego użytkownika |
» 2010-01-30 14:30:45 wyzerowalem speed - efektu nie bylo.... ale zmienilem while na if, do tego wyzerowalem speed - no i dziala :) teraz zostaje przetestowanie jeszcze roznych wypadkow, bo wczesniej tez probowalem podobnych rzeczy (temat o petli while(speed>0)) no i rozne rzeczy sie dzialy.
mam pytanie tylko wlasnie o ta roznice miedzy if a while w tym przypadku, ze dlaczego narzucone jest stosowanie while, czy mozna stosowac if zastepczo bez skutkow ubocznych
no i pytanie do innych, ktorzy w grach maja mozliwosc wejscia do menu, jak wy to rozwiazaliscie - mi poki co dziala to rozwiazanie, ale poniewaz robie cos wbrew temu, co sie tu nauczylem - myslalem ze while(speed>0) to regula w timerach - tak wiec nie jestem pewien czy wszystko ok i czy cos sie nagle nie sypnie... bo sam sobie zeruje speed, bo nie uzywam while "jak nakazano ;) " no bo... nie znam mechanizmu timerow, wiec troszke po omacku ... |
|
eBbi |
» 2010-01-30 20:27:19 jeżeli nie wyświetlasz jakiś animacji w swojej grze w których potrzebujesz dokładnego timera to możesz używać zwyczajnie funkcje rest(). na końcu głównej pętli while wpisz " rest(10);" i już po sprawie. a nie pieprzyć się tak jak z twoim. Pewno sam za niedługo nie obejdę się bez niego ale do tej pory nie myśli mi się używać go. |
|
« 1 » |