Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: mr.zhelez от Май 19, 2013, 23:05



Название: Перемещение и вращение QGraphicsItem
Отправлено: mr.zhelez от Май 19, 2013, 23:05
Пишу игру. Перемещаю игрока при помощи метода moveBy. Герой поворачивается за курсором:
Код:
hero_->setTransform(QTransform().translate(x, y).rotate(angle).translate(-x, -y));
Если герой стоит на месте, то поворот происходит нормально, но если двигать мышкой во время перемещения героя, то иногда происходят какие то сдвиги, рывки и другие странные вещи. Может я иду неправильным путем?


Название: Re: Перемещение и вращение QGraphicsItem
Отправлено: Hrundel от Июнь 22, 2013, 18:14
Если твой герой должен ходить только в восьми направлениях (север. юг. запад. восток. северо-запад. северо-восток. юго-запад. юго-восток.)
то есть как в диабло или типа этого, то ты идешь в неправильном направлении. Если тебе нужно чтобы герой перемещался независимо от карты, то тогда ты вообще выбрал неправильную архитектуру и концепцию. В этом случае надо писать в 3D (OpenGL, DirectX)
Судя по вопросом можно понять, что ты любитель. А для любителя лучше всего писать первую игру в виде сверху. Уверяю тебя - сложностей будет не меньше. :)
Удачи.


Название: Re: Перемещение и вращение QGraphicsItem
Отправлено: Igors от Июнь 22, 2013, 18:29
Пишу игру. Перемещаю игрока при помощи метода moveBy. Герой поворачивается за курсором:
Код:
hero_->setTransform(QTransform().translate(x, y).rotate(angle).translate(-x, -y));
Если герой стоит на месте, то поворот происходит нормально, но если двигать мышкой во время перемещения героя, то иногда происходят какие то сдвиги, рывки и другие странные вещи. Может я иду неправильным путем?
Эта трансформация предполагает что (x, y) - текущий центр героя (вероятно пупок), но не текузая позиция мышака