Правильно ли я корректирую движение в игре при падении fps?

230
02 сентября 2018, 23:30

Изучаю движок cocos2d-x, не очень знаком с этой темой, поэтому не уверен, верно ли всё сделал.

Я двигаю спрайт на 5 пикселей 60 раз в секунду и, если фпс упадёт, то я хочу чтобы за секунду спрайт продвинулся на те же 5*60 пикселей, не меньше и не больше. Правильно ли я сделал корректировку движения?

void HelloWorld::update(float delta)
{
    float newPosX = sprite->getPositionX() + (xMovement * 5 * delta / 0.016666);
    float newPosY = sprite->getPositionY() + (yMovement * 5 * delta / 0.016666);
    sprite->setPosition(newPosX, newPosY);
}

Проверял вставив этот код в функцию update, на глаз вроде работает:

if (RandomHelper::random_int(1, 100) == 5)
    Sleep(100);

Я знаю что сформулировал вопрос плохо, но надеюсь знающие люди поймут. Если есть идеи как это сделать по-другому, с удовольствием прочитаю.

Переменные xMovement и yMovement имеют значения -1, 0, 1, зависит от нажатых клавиш.

READ ALSO
unsigned char как байтовое число

unsigned char как байтовое число

На MSDN указано, что в C++ никогда не было типа byte и вместо него следует использовать тип unsigned charНо при попытке вывести такое значение

242
minGW для qt на windows 64-bit(и не только)

minGW для qt на windows 64-bit(и не только)

Я сейчас второй раз устанавливаю qtИ так как в первый раз я не понял что minGW можно скачать с qt,я решил переустановить qt чтобы вместе с ним получить...

253
Почему нельзя объявить constexpr D3DXVECTOR3?

Почему нельзя объявить constexpr D3DXVECTOR3?

Почему вот так: constexpr RECT DefaultRS = { 0,0,180,52 }; Можно, а вот так constexpr D3DXVECTOR3 DefaultCenter = { 0,0,0 }; нельзя?

259