Последний тип анимации относится к перемещающимся подразделениям. Код, который я поместил в пример выглядит очень похоже на обработку анимации других действий, но в нем отсутствует код для передвижения подразделения по экрану. Я удалил его чтобы максимально упростить пример, но абсолютно ничего не препятствует вам перемещать подразделения. Вот как выглядит код:
ptrUnit->m_iCurMoveFrame++;
if(ptrUnit->m_iCurMoveFrame >=
ptrUnit->m_Animation->m_iNumMoveFrames) {
ptrUnit->m_iCurMoveFrame = 0;
}
ptrUnit->m_iCurAnimFrame =
ptrUnit->m_Animation->m_iStartMoveFrames +
(ptrUnit->m_iCurMoveFrame * (UNITMANAGER_MAXOWNERS + 1));
Если вы хотите добавить код для передвижения, попытайтесь увеличивать координату Y подразделения, пока изображение не выйдет за границу экрана, а затем повторить цикл с низу экрана. Мне кажется, вы разочарованы? Вот код с добавленной логикой для передвижения:
// Передвижение подразделения
ptrUnit->m_fYPos += ptrUnit->m_Movement->m_fMovementSpeed;
// Если вышли за верхнюю границу экрана, начинаем заново снизу
if(ptrUnit->m_fYPos > 360.0f)
ptrUnit->m_fYPos = -360.0f;
Приведенный выше код увеличивает координату Y подразделения, пока оно не скроется из виду, а затем устанавливает координаты подразделения, чтобы оно появилось в нижней части экрана. Это очень простой вариант перемещения снизу вверх, но он открывает перед вами много возможностей.