Четверг, 04 Июня 2020, 04:03

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Помогите буду рад)
Помогите буду рад)
faridunibodulloДата: Суббота, 25 Апреля 2020, 12:51 | Сообщение # 1
частый гость
Сейчас нет на сайте
Как сделать чтобы скорость игры не зависело от fps в game maker 8
Например в игре War Craft 3 если fps 20 или fps 100 то скорость движения юнитов одинаково
Или в CS 1.6 при fps 20 скорость движения равен скоросту движения с 101 fps


Советую посмотреть этот видео и обязательно читать описание
martukДата: Суббота, 25 Апреля 2020, 13:44 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
faridunibodullo, читай про delta time. Я не помню конечно чтобы в gm8 оно было имплементировано, но во всяком случае можно отталкиваться от значения fps.
Если у тебя выставлена скорость комнаты - 60 кадров в сек, то можешь заглобалить переменную dt со значением 60/fps. (fps - встроенная переменная в gm). И далее мы просто умножаем скорость передвижения любого объекта на dt и будет у тебя одинаковая скорость при любом fps
UNIT02_GAMES_STUDIOДата: Суббота, 25 Апреля 2020, 17:17 | Сообщение # 3
был не раз
Сейчас нет на сайте
Помню в своей игре тоже хотел сделать такое, но возникала проблема. Когда игра по какой либо причине теряла fps (в моем случае при включении паузы), то за эту доли секундную потерю, персонажи начинали сильно ускоряться, подстраиваясь под текущий fps. Поэтому следует этот момент учесть и как-то замаскировать.

А вообще, я например не считаю, что заоблачное значение fps столь важно. Можно выставить просто 30 или 60 и все будет нормально. Если эти цифры не будут показываться на экране, то никто даже не поймет ничего. Главное, что бы fps был стабильным и не проседал.


МОИ ИГРЫ:
2016 - [2D] Агент Green [Action-platformer]

МОИ ИСХОДНИКИ:
2020 - [GM8] UNIT02 Particle Generator
AlexanderBekkerДата: Суббота, 25 Апреля 2020, 19:05 | Сообщение # 4
BekkerDev Studio
Сейчас нет на сайте
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);
}


Blood Harvest
Blood Harvest 2
Blood Harvest 3
Super Blasting Boy
BekkerDev Level Editor 3
Разработчик и издатель инди-игр в Steam.
BekkerDev Studio
faridunibodulloДата: Суббота, 25 Апреля 2020, 20:07 | Сообщение # 5
частый гость
Сейчас нет на сайте
AlexanderBekker,
Pascal ???

Добавлено (25 Апреля 2020, 20:18)
---------------------------------------------
и не только скорость движения, а полностью игру потому что команды степа тоже медленно работают при понижении фпс


Советую посмотреть этот видео и обязательно читать описание
DivESДата: Суббота, 25 Апреля 2020, 21:11 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
faridunibodullo, это Java.
К чему ты там пришёл-то?
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Помогите буду рад)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2020 Рейтинг