Forráskód Böngészése

添加鼠标滚轮事件处理,实现放大缩小功能

zhong (钟鹏群) 1 hónapja
szülő
commit
c558b89357
1 módosított fájl, 12 hozzáadás és 1 törlés
  1. 12 1
      ball-demo.py

+ 12 - 1
ball-demo.py

@@ -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轴旋转
     
     # 目录树可视化