|
|
@@ -311,6 +311,9 @@ blink_start_time = pygame.time.get_ticks()
|
|
|
# 旋转控制变量
|
|
|
rotation_angle = 0.0
|
|
|
|
|
|
+# 相机控制变量
|
|
|
+camera_z = -5 # 相机的 Z 轴位置,初始值为 -5
|
|
|
+
|
|
|
# 主循环
|
|
|
running = True
|
|
|
while running:
|
|
|
@@ -379,13 +382,21 @@ while running:
|
|
|
# 移动到后一个兄弟,如果当前是最后一个则移动到第一个
|
|
|
new_index = (current_index_in_siblings + 1) % len(siblings)
|
|
|
selected_node_index = siblings[new_index]
|
|
|
+ elif event.type == pygame.MOUSEBUTTONDOWN:
|
|
|
+ if event.button == 4: # 鼠标滚轮向上滚动,放大
|
|
|
+ camera_z += 0.5 # 相机向Z轴正方向移动,放大视图
|
|
|
+ elif event.button == 5: # 鼠标滚轮向下滚动,缩小
|
|
|
+ camera_z -= 0.5 # 相机向Z轴负方向移动,缩小视图
|
|
|
+
|
|
|
+ # 限制相机的Z轴范围,防止过度放大或缩小
|
|
|
+ camera_z = max(-10, min(-2, camera_z))
|
|
|
|
|
|
# 清除屏幕
|
|
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
|
|
|
|
|
|
# 重置模型视图矩阵并设置相机位置
|
|
|
glLoadIdentity()
|
|
|
- glTranslatef(0.0, 0.0, -5) # 相机向后移动
|
|
|
+ glTranslatef(0.0, 0.0, camera_z) # 相机位置,可通过鼠标滚轮调整
|
|
|
glRotatef(rotation_angle, 0.0, 1.0, 0.0) # 绕竖直中线/Y轴旋转
|
|
|
|
|
|
# 目录树可视化
|