Как сделать чтобы скорость игры не зависело от fps в game maker 8 Например в игре War Craft 3 если fps 20 или fps 100 то скорость движения юнитов одинаково Или в CS 1.6 при fps 20 скорость движения равен скоросту движения с 101 fps
faridunibodullo, читай про delta time. Я не помню конечно чтобы в gm8 оно было имплементировано, но во всяком случае можно отталкиваться от значения fps. Если у тебя выставлена скорость комнаты - 60 кадров в сек, то можешь заглобалить переменную dt со значением 60/fps. (fps - встроенная переменная в gm). И далее мы просто умножаем скорость передвижения любого объекта на dt и будет у тебя одинаковая скорость при любом fps
Помню в своей игре тоже хотел сделать такое, но возникала проблема. Когда игра по какой либо причине теряла fps (в моем случае при включении паузы), то за эту доли секундную потерю, персонажи начинали сильно ускоряться, подстраиваясь под текущий fps. Поэтому следует этот момент учесть и как-то замаскировать.
А вообще, я например не считаю, что заоблачное значение fps столь важно. Можно выставить просто 30 или 60 и все будет нормально. Если эти цифры не будут показываться на экране, то никто даже не поймет ничего. Главное, что бы fps был стабильным и не проседал. МОИ ИГРЫ: • [2D] Агент Green [Action-platformer] • [2D] Оставшиеся: Мир После Нас [TDS]
martuk, это довольно геморройное решение, ибо в коде может быть куча строк, где придётся умножать значения на delta. Проще привязать к FPS обновление всей игровой логики. Не знаю, как это делается в Game Maker, но я делаю так:
Код public void render() { elapsed += Gdx.graphics.getDeltaTime(); float frames = 1.0f / 60f; while (elapsed > frames) { elapsed -= frames; game.tick(); }
graphics.render(game); }
Добавлено (25 Апреля 2020, 20:18) --------------------------------------------- и не только скорость движения, а полностью игру потому что команды степа тоже медленно работают при понижении фпс