- Статус
- Оффлайн
- Регистрация
- 19 Май 2017
- Сообщения
- 2,400
- Реакции
- 896
Кароче сделал(спастил) себе фикс движений, подключил все дела в wok SDK и чета пошло по пизде.
Взад - вперед двигается нормально, а вот если нажать A или D, то оно идет ровно вперед.
Код
Вызов
Взад - вперед двигается нормально, а вот если нажать A или D, то оно идет ровно вперед.
Код
C++:
void movement::Run(qangle_t original)
{
qangle_t real_viewangles;
interfaces::engine->get_view_angles(real_viewangles);
vec3_t vecMove(g::cmd->m_move.x, g::cmd->m_move.y, g::cmd->m_move.z); // forward side up
float speed = sqrt(vecMove.x * vecMove.x + vecMove.y * vecMove.y);
qangle_t angMove;
math::vector_angles(vecMove, angMove);
float yaw = DEG2RAD(g::cmd->m_viewangles.y - original.y + angMove.y);
g::cmd->m_move.x = cos(yaw) * speed; //forward
g::cmd->m_move.y = sin(yaw) * speed; //side
g::cmd->m_buttons &= ~IN_RIGHT;
g::cmd->m_buttons &= ~IN_MOVERIGHT;
g::cmd->m_buttons &= ~IN_LEFT;
g::cmd->m_buttons &= ~IN_MOVELEFT;
g::cmd->m_buttons &= ~IN_FORWARD;
g::cmd->m_buttons &= ~IN_BACK;
if (g::cmd->m_move.x > 0.f) //forward
g::cmd->m_buttons |= IN_FORWARD;
else if (g::cmd->m_move.x < 0.f) //forward
g::cmd->m_buttons |= IN_BACK;
if (g::cmd->m_move.y > 0.f) //side
{
g::cmd->m_buttons |= IN_RIGHT;
g::cmd->m_buttons |= IN_MOVERIGHT;
}
else if (g::cmd->m_move.y < 0.f) //side
{
g::cmd->m_buttons |= IN_LEFT;
g::cmd->m_buttons |= IN_MOVELEFT;
}
}
Вызов
C++:
g::angles::real = cmd->m_viewangles;
move->Run(g::angles::real);
math::normalize(cmd->m_viewangles);