mihail.litvinov Posted November 10, 2022 Share Posted November 10, 2022 Есть 2 проблемы с мышкой - первая это когда вхожу во вьюпорт нажимаю левую кнопку мыши и камера начинает прокручиваться влево ... очень странно и всего две функции Второй вопрос есть кусок по идее все правильно из доки и должно работать вращение но камера стоит на месте, что я делаю не так Mat4 rotation; Vec3 delta_movement; Mat4 transform = player->getWorldTransform(); Vec3 direction = transform.getColumn3(2); ..... .... else if (ControlsApp::getState(Controls::STATE_AUX_3)) { Log::message("set the node left rotation along the Z axis: %f", rotation_speed * ifps * 100); rotation.setRotateZ(rotation_speed * ifps * 100); update_transform = 1; } if (update_transform) { transform = transform * rotation; transform.setColumn3(3, transform.getColumn3(3) + delta_movement); player->setWorldTransform(transform); } Спасибо! AppWorldLogic.cpp AppWorldLogic.h Link to comment
karpych11 Posted November 11, 2022 Share Posted November 11, 2022 Здравствуйте. 1) Проблему с прокручиванием камеры влево при клике во вьюпорт воспроизвести не удалось. Это может происходить из-за того, что в файле data/configs/default.controls для состояния TURN_LEFT почему-то назначена левая кнопка мыши, а должно быть значение UNKNOWN. 2) В этом примере создается PlayerSpectator, который потом пытается вращаться по Z-оси. Но данный вариант Player'а не умеет так менять трансформацию. Из матрицы он берет положение, а из компонент вращения получает только два угла - для горизонтального вращения и для вертикального вращения. Это можно увидеть тут. Для вращения по оси Z можно попробовать использовать PlayerDummy. Link to comment
mihail.litvinov Posted November 11, 2022 Author Share Posted November 11, 2022 Спасибо огромное!!! Link to comment
Recommended Posts