2015-06-20 5 views
-4

У меня есть фрагмент кода для небольшой игры, и в какой-то момент мой код в основном «обновляет» все мои объекты. Для моего игрока это включает проверку нажатия клавиши перемещения, затем она должна остановить функцию «обновления» для игрока и перейти к следующему объекту. Я обнаружил, что он очень медленно работает над функцией «обновления» проигрывателя.Повысить производительность цикла обновления игры?

В принципе, если я перемещаю свой плеер, мое «обновление все» идет намного быстрее, чем когда оно вообще не движется. Есть ли быстрый способ позволить моему обновлению void для моего плеера идти быстрее, когда не выполняются критерии «если» (например, клавиши перемещения не нажаты)?

EDIT: им с помощью C++

+6

Нет абсолютно никакого способа сказать, как улучшить код, не видя его (и даже не зная, о каком языке программирования вы говорите.) – JJJ

+0

Возможно, что ваш цикл событий ждет (блокирует) на входе. Если нет работы, которая должна быть выполнена, тогда это путь, а _slowness_ - если измеряется счетчиком кадров - иллюзорна. Если есть работа в каждом кадре, опрос может быть лучшим выбором. –

+0

Извините, я использую C++, я не знал, что этот форум предназначен для нескольких языков. У меня нет доступа к моему коду прямо сейчас, но для моего игрока в обновлении есть четыре оператора if, один для проверки каждой клавиши со стрелкой. Если я нажимаю стрелку и перемещаю ее, обновление происходит очень быстро, но если я не делаю это очень медленно. Я бы подумал, что если ни один из ifs не верен, он просто пропускает мое обновление void и переходит к следующему объекту, как он должен, но, скорее, он не работает так. – Xentro

ответ

0

Вы, безусловно, нужно запустить профайлер, там уже много доступны, выбрать один по своему вкусу. Он покажет вам, сколько времени ваша программа проводит в каждой функции. Как только вы узнаете, какие точные строки кода виноваты, обычно легко их исправить.