Всем привет
Благодаря ценным советам участников форума я взялся за изучение потоков. Успешно внедрил их в несколько своих программ, в частности - в стратегическую игру, над которой потею в данное время.
Но столкнулся с одной проблемой. Каждый юнит в игре имеет свою скорость движения, атаки и стрельбы из лука. Используя потоки, я теряю возможность управлять задержками (все двигаются с одинаковой скоростью, то ли это конница, то ли гоплиты).
Нашёл в статьях на сайте код процедуры Delay, вызываю её так:
Код:
...fMoveAI.Execute;
begin
while not Terminated do
begin
Synchronize(MoveAI);
Delay(MOVE_DELAY);
end;
end;
Вроде бы работает, но как-то это неаккуратно. Есть функция WaitFor - нельзя ли с её помощью задерживать выполнение потока?