我想在opengl C++中制作2D游戏。 我想用鼠标移动来打一个三角形。因此我首先绘制三角形。到目前为止,当我移动鼠标时,我成功地制作了三角形滚动条。如何使用鼠标在C++ opengl中滚动对象:
我用这两条线:
case WM_MOUSEMOVE:
X += (GLfloat)LOWORD(lParam);
,然后在我的绘图功能,我这样做:
glTranslatef(x,0.0f,0.0f);
所以三角形用鼠标移动来移动为止。但问题是,当我向左移动鼠标时,我希望它向左移动,向右移动鼠标时向右移动。
无论我如何移动鼠标,三角形都向右移动,从不离开。 即使我向上或向下移动鼠标,它也会向右移动。
我该如何解决这个问题?
我猜测你正在使用的坐标系意味着+ =总是会加上一些正值,因为屏幕的左手边将从0开始。试试这个。 保存它的最后一个位置(比如xPrev)。移动鼠标,获得新的x值(比如xCurrent)。 xCurrent - xPrev应该告诉你哪个方向移动三角形,以及多少。 –