我尝试了很多尝试,使用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旋转得非常快,我无法用鼠标将其停止