Ответ в теме: Генераторы рун теряются в действиях

SFML и C++ Уроки \ Разработка игр Форумы Логика игр Генераторы рун теряются в действиях Ответ в теме: Генераторы рун теряются в действиях

#1196
+1
Heisenberg
Heisenberg
Участник
Сообщений:320

Зарегистрирован:
01.04.2015

Репутация:146

Проблема решена на половину, теперь всё работает как и задумано, но FPS всё ещё падает. Игра буквально начинает дёргаться.

Проблема заключалась в том, что генераторы (Класс Distributor) обрабатывали сразу все существующие руны, из которых брали значения применяемые в условиях, тем самым теряя собственную логику переставали подчиняться.

Решил путём перевода из list в vector, для доступности контроля последнего созданного объекта (Руны)
Rune *r = rune.back()

А так-же во избежании последующего бага с обращением к несуществующему адресу памяти добавил защитные условия if(!rune.empty) которое проверяет на пустоту вектора.

Может кто знает почему падает FPS? Ведь у меня стоит лимит на создание рун по 20 шт. на каждый генератор * 4. Это совсем немного, ранее я запускал программу с 300 элементами, ничего подобного не встречалось.

И как убрать микрозадержку при создании новой руны, которая возникает каждый раз когда создаётся новый элемент вектора.

Пробовал заранее выделять память под объекты rune.reserve(20), но это не помогло.

Самый необъяснимый факт, если поднять одну любую руну, то лаги на время пропадают.