Russian Qt Forum
Май 13, 2024, 09:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Нужно переделать управление персонажа под тригонометрию с поворотом картинки.  (Прочитано 1423 раз)
Vessels.TSS
Новичок

Offline Offline

Сообщений: 1


Просмотр профиля
« : Декабрь 21, 2020, 15:52 »

У меня стоит обычное управление нажал - переместилось на пиксель вбок и тп. Мне нужно чтобы персонаж перемещался по типу этого кода но на Qt.

    if (Up && speed<maxSpeed)
        if (speed < 0)  speed += dec;
        else  speed += acc;
 
    if (Down && speed>-maxSpeed)
        if (speed > 0) speed -= dec;
        else  speed -= acc;
 
    if (!Up && !Down)
        if (speed - dec > 0) speed -= dec;
        else if (speed + dec < 0) speed += dec;
        else speed = 0;
 
    if (Right && speed!=0)  angle += turnSpeed * speed/maxSpeed;
    if (Left && speed!=0)   angle -= turnSpeed * speed/maxSpeed;
 
    car[0].speed = speed;
    car[0].angle = angle;
Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 579


Просмотр профиля
« Ответ #1 : Декабрь 22, 2020, 08:09 »

Код
C++ (Qt)
void MyItem::keyPressEvent(QKeyEvent *event)
{
  auto key = event->key();
  if (key == Qt::Key_Up && speed<maxSpeed)
       if (speed < 0)  speed += dec;
       else  speed += acc;
 
   if (key == Qt::Key_Down && speed>-maxSpeed)
       if (speed > 0) speed -= dec;
       else  speed -= acc;
 
   if (key != Qt::Key_Up && key != Qt::Key_Down)
       if (speed - dec > 0) speed -= dec;
       else if (speed + dec < 0) speed += dec;
       else speed = 0;
 
   if (key == Qt::Key_Right && speed!=0)  angle += turnSpeed * speed/maxSpeed;
   if (key == Qt::Key_Left && speed!=0)   angle -= turnSpeed * speed/maxSpeed;
 
   car[0].speed = speed;
   car[0].angle = angle;
}
 
« Последнее редактирование: Декабрь 22, 2020, 08:12 от ssoft » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.072 секунд. Запросов: 22.