С две думи чрез този метод нещата ще се движат с еднаква скорост независимо от лага.... винаги!
И е изключително прост, всеки може да го приложи. Какво трябва да се направи:
1.В първата стая на играта, в контрол обекта при създаването му се инициализира една глобална променлива global.gamespeed=1;
2.После тази променлива трябва да се обновява всяка стъпка в begin step на контрола за съответната стая:
Код
if fps>1
{
global.gamespeed=fps/room_speed;
}
{
global.gamespeed=fps/room_speed;
}
3.За всяко нещо, което се движи, или се променя постоянно, се разделя на тази глобална променлива, за да се поддържа тази скорост:
Код
//това са само примери
speed=10/global.gamespeed;
friction=0.5/global.gamespeed;
image_speed=2/global.gamespeed;//изключително важно, за да изглежда и анимацията наред
//ако нещо се увеличава всяка стъпка, то това правило важи и за него
health+=3/global.gamespeed;
edikvositam+=10/global.gamespeed;
speed=10/global.gamespeed;
friction=0.5/global.gamespeed;
image_speed=2/global.gamespeed;//изключително важно, за да изглежда и анимацията наред
//ако нещо се увеличава всяка стъпка, то това правило важи и за него
health+=3/global.gamespeed;
edikvositam+=10/global.gamespeed;
И това е само. Толкова просто.
Има едно изключение и това са алармите. Те не могат да бъдат повлияни от този метод. За това може да се използва тяхната алтернатива в код.
Delta timinga не е оправдание да занемарите играта да бъде неоптимизирана да се влачи с едва 20 кадъра в секунда. Ще стане насечена и определено неприятна за игра. Този метод е само за случаите когато някой има по-стар компютър, или има лаг поради многото пуснати програми.