【发布时间】:2020-08-02 14:59:10
【问题描述】:
我想在一个 3D 立方体上移动,按住鼠标左键单击 + 鼠标拖动。按住左键并拖动鼠标应该允许用户水平和垂直轨道。目前,我的代码允许出现 3D 立方体,但是当我单击并拖动时它不会围绕对象旋转。这是我的代码:
void UMouseClick(int button, int state, int x, int y)
{
if((button == GLUT_LEFT_BUTTON) && (state == GLUT_DOWN)){
cout << "Left Mouse Button Clicked!" << endl;
currentClickLeft = true; // this is my global variable
}
if((button == GLUT_LEFT_BUTTON) && (state == GLUT_UP)){
cout << "Left Mouse Button Released!" << endl;
currentClickLeft = false;
}
void UMouseMove(int x, int y)
{
if(currentClickLeft == true && mouseDtected) {
lastMouseX = x;
lastMouseY = y;
mouseDetected = false;
mouseXOffset = x - lastMouseX;
mouseYOffset = lastMouseY - y;
lastMouseX = x;
lastMouseY = y;
mouseXOffset *= sensitivity;
mouseYOffset *= sensitivity;
yaw += mouseXOffset;
pitch += mouseYOffset;
front.x = 10.0f * cos(yaw);
front.y = 10.0f * sin(pitch);
front.z = sin(yaw) * cos(pitch) * 10.f;
}
这到底是什么问题?
另外,我是这种编程语言的新手,所以如果我没有提供任何东西,请告诉我。
【问题讨论】: