Nitek wrote:Praktyczne zastosowanie pętli.
Często warto użyć pętli jeżeli daliśmy komuś zadanie pójścia w dane miejsce i nic się nie wydarzy dopóki ta postać tam nie dojdzie. W tym przykładzie postać o identyfikatorze "Ludek" dostała zadanie pójścia do miejsca x=22 y=11. Gra będzie czekać sekundę i powtarzać tą czynność dopóki nasz Ludek nie dojdzie do wyznaczonego miejsca.Inne przykładowe zastosowanie to zwiększanie zmiennej o 1 co sekundę dopóki jednostka z identyfikatorem "Czlowieczek" nie dojdzie w pobliże jednostki "Skladzik". Można zrobić to samo używając every, ale zajmie to więcej czasu, miejsca i będzie mniej czytelne; a jak wiadomo jeżeli 10 linijek robi to samo co 20 linijek, to te 10 linijek będzie lepszym rozwiązaniem.Code: Select all
ComMoveXY(Ludek,22,11); Repeat Wait(0$1) Until IsAt(Ludek,22,11); Say(Ludek,'Jakis-Dialog');
Code: Select all
Repeat Begin ZmiennaA=ZmiennaA+1; Wait(0$1); End; Until GetDistUnits(Czlowieczek,Skladzik)<12;
Author: Nitek & JRFJRF wrote:@nitek jeśli chodzi o ludzi, to wolę krótszą i bardziej uniwersalną pętlę:
Code: Select all
while not IsIdle(sol) do wait(0$1);
Topic: http://forum.original-war.net/viewtopic.php?f=42&t=2993