mirror of
https://github.com/Linloir/SceneEditor.git
synced 2025-12-17 07:28:12 +08:00
[UI][ADD] Camera wasd move
This commit is contained in:
parent
7eccb8e98b
commit
1e92f8922d
@ -477,6 +477,7 @@ void SceneViewer::keyPressEvent(QKeyEvent* event) {
|
||||
Logger::debug("Control pressed");
|
||||
_controlPressed = true;
|
||||
}
|
||||
|
||||
if (event->modifiers() == Qt::NoModifier && _selectedObject != nullptr) {
|
||||
switch (event->key()) {
|
||||
case Qt::Key_W: {
|
||||
@ -510,6 +511,40 @@ void SceneViewer::keyPressEvent(QKeyEvent* event) {
|
||||
}
|
||||
parentWidget()->update();
|
||||
}
|
||||
else if (event->modifiers() == Qt::NoModifier) {
|
||||
// move camera
|
||||
switch (event->key()) {
|
||||
case Qt::Key_W: {
|
||||
// move a bit forward
|
||||
glm::vec3 front = _camera.front();
|
||||
_camera.push(1.0f);
|
||||
_rotateCenter += front;
|
||||
break;
|
||||
}
|
||||
case Qt::Key_S: {
|
||||
// move a bit backward
|
||||
glm::vec3 front = _camera.front();
|
||||
_camera.push(-1.0f);
|
||||
_rotateCenter -= front;
|
||||
break;
|
||||
}
|
||||
case Qt::Key_A: {
|
||||
// move a bit left
|
||||
glm::vec3 right = _camera.right();
|
||||
_camera.move(-right * 0.5f);
|
||||
_rotateCenter -= right * 0.5f;
|
||||
break;
|
||||
}
|
||||
case Qt::Key_D: {
|
||||
// move a bit right
|
||||
glm::vec3 right = _camera.right();
|
||||
_camera.move(right * 0.5f);
|
||||
_rotateCenter += right * 0.5f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
parentWidget()->update();
|
||||
}
|
||||
}
|
||||
|
||||
void SceneViewer::keyReleaseEvent(QKeyEvent* event) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user