2D 游戏编程技巧:相机、纹理图集与精灵的应用
1. 基础渲染流程
在进行 2D 游戏编程时,通常会先设置投影矩阵和视口,并清除屏幕。接着渲染所有目标,复用存储在 targetVertices 中的矩形模型,这与之前的测试类似,只是这次渲染的是目标。之后渲染球和大炮,如同在碰撞重力测试中所做的那样。需要注意的是,要改变绘制顺序,确保球始终在目标之上,大炮始终在球之上,同时可以使用 glColor4f() 函数将目标颜色设为绿色。当发射炮弹时,炮弹会穿过目标区域,任何被球击中的目标都会从世界中移除。
2. 2D 相机的实现
在之前的代码中,我们仅通过 glOrthof() 定义了视锥体,只能看到世界中 (0,0,1) 到 (FRUSTUM_WIDTH, FRUSTUM_HEIGHT,–1) 的区域。为了实现相机的移动和缩放功能,我们可以对 glOrthof() 进行不同的参数设置。
- 移动视锥体 :可以通过改变 glOrthof() 的参数来移动视锥体。例如, gl.glOrthof(x, x + FRUSTUM_WIDTH, 0, FRUSTUM_HEIGHT, 1, -1) 可以将视锥体在 x 轴上进行偏移,其中 x 是自定义的偏移量。同样,也可以在 x 和 y 轴上同时移动: gl.glOrthof(x, x + FRUSTUM_WIDTH, y, y +FRUSTUM_HEIGHT, 1, -1) 。
-
超级会员免费看
订阅专栏 解锁全文
30

被折叠的 条评论
为什么被折叠?



