如何在OpenGL(FPS游戏)中实现鼠标移动?

时间:2019-11-14 18:49:31

标签: python opengl pygame opengl-compat

我尝试了很多尝试,使用glRotate和pygame.mouse.get_rel(<-用于获取鼠标移动。返回两个值:x和y移动)。但是一切都绕着0,0,0旋转,这不行。然后我发现我可以使用gluLookAt,因为我有机会更改相机的X,Y和Z(用于玩家移动),因此我认为它更适合。但是我有一个新问题:我的相机像醉酒一样旋转。我将在下面附加一段代码。 (使用PyOpenGL和pygame在Python中制作)

mm = pygame.mouse.get_rel()

move_x += (mm[0] / 1) * (3.14 / 180)
move_y += (mm[1] / 1) * (3.14 / 180)

gluLookAt(0, 0, 0, move_x, move_y, -10, 0, 1, 0)

move_x = 0
move_y = 0

现在我发现我需要使用一些三角函数:

mm = pygame.mouse.get_rel()

pitch += mm[1] * 0.05
yaw += mm[0] * 0.05

x = cos(radians(pitch)) * cos(radians(yaw))
y = sin(radians(pitch))
z = cos(radians(pitch)) * sin(radians(yaw))

gluLookAt(0, 0, 0, x, y, z, 0, 1, 0)

但是现在它绕Y旋转得非​​常快,我无法用鼠标将其停止

0 个答案:

没有答案