LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

Во многих играх понятия fps и tps принципиально разные.

А то что я написал, к графике не привязано, цикл может быть как с графикой, так и без.

Если такт выполняется X сек. а предыдущий такт выполнился за 2X секунд, то есть «лаганул», то у тебя будет переменная 2.0, иногда ты можешь передать значение 2.0 в функцию обработки, и она сделает ускорение 2.0, иногда тебе нужно именно запускать одиночный такт, то можно завести счетчик тактов, к нему будет добавляться каждый раз переменная. Если предпредыдущий такт выполнился ровно, он у нас 0, теперь 0 + 2.0 = 2.0, выполняем за сейчас ровно два такта что бы «догнать».

Если предыдущий цикл выполнился слишком быстро, то будет 0 + 0.5 = 0.5, тактов не выполняем. А в следующий раз добавится 0.7, 0.5 + 0.7 = 0.12, выполнить нужно будет один такт, оставить 0.02.

Исправление MOPKOBKA, :

Во многих играх понятия fps и tps принципиально разные.

А то что я написал, к графике не привязано, цикл может быть как с графикой, так и без.

Если такт выполняется X сек. а предыдущий такт выполнился за 2X секунд, то есть «лаганул», то у тебя будет переменная 2.0, иногда ты можешь передать значение 2.0 в функцию обработки, и она сделает ускорение 2.0, иногда тебе нужно именно запускать одиночный такт, то можно завести счетчик тактов, к нему будет добавляться каждый раз переменная. Если предпредыдущий такт выполнился ровно, он у нас 0, теперь 0 + 2.0 = 2.0, выполняем за сейчас ровно два такта что бы «догнать».

Если предыдущий цикл выполнился слишком быстро, то будет 0 + 0.5 = 0.5, тактов не выполняем. В следующий раз добавится 0.7, 0.5 + 0.7 = 0.12, выполнить нужно будет один такт, оставить 0.02

Исправление MOPKOBKA, :

Во многих играх понятия fps и tps принципиально разные.

А то что я написал, к графике не привязано, цикл может быть как с графикой, так и без.

Если такт выполняется X сек. а предыдущий такт выполнился за 2X секунд, то есть «лаганул», то у тебя будет переменная 2.0, иногда ты можешь передать значение 2.0 в функцию обработки, и она сделает ускорение 2.0, иногда тебе нужно именно запускать одиночный такт, то можно завести счетчик тактов, к нему будет добавляться каждый раз переменная. Если предпредыдущий такт выполнился ровно, он у нас 0, теперь 0 + 2.0 = 2.0, выполняем за сейчас ровно два такта что бы «догнать».

Если предыдущий цикл выполнился слишком быстро, то будет 0 + 0.5 = 0.5, тактов не выполняем.

Исходная версия MOPKOBKA, :

Во многих играх понятия fps и tps принципиально разные.

А то что я написал, к графике отношения мало имеет, цикл может быть как с графикой, так и без.

Если такт выполняется X сек. а предыдущий такт выполнился за 2X секунд, то есть «лаганул», то у тебя будет переменная 2.0, иногда ты можешь передать значение 2.0 в функцию обработки, и она сделает ускорение 2.0, иногда тебе нужно именно запускать одиночный такт, то можно завести счетчик тактов, к нему будет добавляться каждый раз переменная. Если предпредыдущий такт выполнился ровно, он у нас 0, теперь 0 + 2.0 = 2.0, выполняем за сейчас ровно два такта что бы «догнать».

Если предыдущий цикл выполнился слишком быстро, то будет 0 + 0.5 = 0.5, тактов не выполняем.