构建 3D 世界:TourGL 应用详解
1. 应用概述
TourGL 是一个基于主动渲染框架构建的简单 3D 世界应用。用户通过键盘控制在场景中移动,目标是找到并消除地面上随机放置的形状。游戏以开始屏幕启动,结束时显示“Game Over”消息。该应用展示了多种 OpenGL(JOGL)技术,如透明图像纹理、2D 覆盖层以及位图和 Java 2D 字体的使用。
应用的视觉元素包括:
- 带有红色正方形中心和 x、z 轴数字的绿蓝棋盘格地板。
- 星空天空盒。
- 旋转的“地球”(纹理球体)。
- 始终面向相机的树木广告牌。
- 随机平放在地面上的多个形状(默认是红色的 R)。
用户可以使用箭头键前后移动、左右平移、上下移动和左右转向,但不能离开棋盘格或天空盒的边界。游戏可以通过按下 ESC、q、END、Ctrl - c 或点击关闭框来终止。
2. 类结构与初始化
TourGL 类创建 GUI,包含线程画布 TourCanvasGL 和窗口底部的两个文本字段。TourGL 捕获窗口和组件调整大小事件,并调用 TourCanvasGL 中的方法来暂停、恢复、停止和调整 3D 场景的大小。
TourCanvasGL 构造函数完成以下任务:
// globals
private TourGL tourTop; // reference back to top-level JFrame
private long period; // period between drawing