GMC Bulgaria

Здравейте ( Вход | Регистрация )

 
Reply to this topicStart new topic
независимо от лага поддържайте скоростта еднаква!, чрез Delta Timing
яверт
коментар 12:24:48, 29-May-2010, Saturday
Коментар #1


Засмян тъпоъгълник :D
Икона на група

Група: Администратор
Коментари: 1790
Регистриран: 21.07.08
Град: Това е място, населено с много хора. FPS: 60
Потребител № 1116



Нито концепцията, нито кода са мои, но това е нещо твърде полезно да бъде подминато.
С две думи чрез този метод нещата ще се движат с еднаква скорост независимо от лага.... винаги!
И е изключително прост, всеки може да го приложи. Какво трябва да се направи:
1.В първата стая на играта, в контрол обекта при създаването му се инициализира една глобална променлива global.gamespeed=1;
2.После тази променлива трябва да се обновява всяка стъпка в begin step на контрола за съответната стая:
Код
if fps>1
   {
   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;

И това е само. Толкова просто.
Има едно изключение и това са алармите. Те не могат да бъдат повлияни от този метод. За това може да се използва тяхната алтернатива в код.
Delta timinga не е оправдание да занемарите играта да бъде неоптимизирана да се влачи с едва 20 кадъра в секунда. Ще стане насечена и определено неприятна за игра. Този метод е само за случаите когато някой има по-стар компютър, или има лаг поради многото пуснати програми.


--------------------
Цитат
Пешо:
4:53:46
Я недейти са карайти тука че да ни ва зашливйъ
Go to the top of the page
 
+Quote Post
Hella_from_Hell
коментар 13:22:44, 29-May-2010, Saturday
Коментар #2


Редовен бъбривко
Икона на група

Група: Администратор
Коментари: 782
Регистриран: 31.12.07
Град: Шумен
Потребител № 824



Добре де ама ако всичко се влияе от тази променлива няма ли играта да сече умишлено?
В смисъл то движението хубаво ще се запази едно и също, но така форсираш играта ти да бави повече като процеси.


--------------------
Download my games (click an image for more information and downloading):

website: rbglifestyle.hit.bg
Go to the top of the page
 
+Quote Post
яверт
коментар 13:27:29, 29-May-2010, Saturday
Коментар #3


Засмян тъпоъгълник :D
Икона на група

Група: Администратор
Коментари: 1790
Регистриран: 21.07.08
Град: Това е място, населено с много хора. FPS: 60
Потребител № 1116



Не мога да те разбера какво имаш впредвид. Очевидно метода е достатъчно добър, щом се използва широко.
форираш? Какъв е този глагол? Аман от чужди думи.


--------------------
Цитат
Пешо:
4:53:46
Я недейти са карайти тука че да ни ва зашливйъ
Go to the top of the page
 
+Quote Post
Hella_from_Hell
коментар 13:35:48, 29-May-2010, Saturday
Коментар #4


Редовен бъбривко
Икона на група

Група: Администратор
Коментари: 782
Регистриран: 31.12.07
Град: Шумен
Потребител № 824



Форсираш имах в предвид. Много ми се яде и ям букви днес.

Мисълта ми беше че като го слагаш това на всяка променлива играта ти ще стане по-"тежка". Таймингът ще си остане същият, но предполагам ще се появи допълнителен FPS лаг. Друг е въпросът колко голям ще е той. Може и да е почти нищожен, но влияние определено ще оказва някакво.


--------------------
Download my games (click an image for more information and downloading):

website: rbglifestyle.hit.bg
Go to the top of the page
 
+Quote Post
яверт
коментар 13:41:42, 29-May-2010, Saturday
Коментар #5


Засмян тъпоъгълник :D
Икона на група

Група: Администратор
Коментари: 1790
Регистриран: 21.07.08
Град: Това е място, населено с много хора. FPS: 60
Потребител № 1116



Не, не се насилва играта по този начин.
Цитат
но влияние определено ще оказва някакво.

Видиш ли, това ще се отрази върху скоростта:
Код
var a;
if fps>1 global.gamespeed=fps/roomspeed;
repeat(200) a=5/global.gamespeed;

Ако някой не вярва, че това ще му смъкне скоростта с поне 5 кадъра в секунда, може да го пробва.


--------------------
Цитат
Пешо:
4:53:46
Я недейти са карайти тука че да ни ва зашливйъ
Go to the top of the page
 
+Quote Post
Angel
коментар 15:51:12, 28-June-2011, Tuesday
Коментар #6


Редовен потребител
***

Група: Потребител
Коментари: 237
Регистриран: 12.03.07
Град: София
Потребител № 469



Еми реших да го пробвам,и резултата е кофти unsure.gif ,установих откъде е проблема, и тои е че GM fps-то се ъпдейтва на една секунда и това прави голям проблем,но намерих едно dll което изчислява фпс-то до 0,000001 секунди и всичко е ок с него smile.gif ето го тук


--------------------
Inxsys=(top down view shooter)-(Online)
Go to the top of the page
 
+Quote Post
svetljjjo
коментар 17:53:55, 29-July-2012, Sunday
Коментар #7


Редовен потребител
***

Група: Потребител
Коментари: 106
Регистриран: 04.02.06
Потребител № 97



някой има ли го тоя длл че от рапит шаре са го махнали вече
ако някой го има да го качи някъде да може да се сваля


--------------------
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 потребител(и) четат тази тема (1 гости и 0 скрити)
0 Потребител(и):

 



Олекотена версия Час: 19:15:21, 05.05.24