游戏对象可以大体分为三种: 需要更新状态也需要绘制的动态对象(如人物), 需绘制但是不需要更新状态的静态对象(如场景), 需要更新状态但无须绘制的工具对象(如摄像机和触发器)
三大游戏对象的程序实现可以通过抽象出...然后按照设置好的索引位置和区域大小来从表单中读取所需的图像, 这样能消除图像切换的消耗
下图左边是分离的图像, 右图是整合后的精灵表单:
常见的2D游戏
单轴滚屏: 游戏世界只按照x轴或y轴滚动,...: 游戏世界会同时在xy上滚动, 类似单轴滚屏, 需要同时准备四张背景图像用于显示, 而且背景不再使用链表来组建, 而是改为二维数组来决定目前需要显示哪些背景图像
砖块地图: 将背景切分为等分的方块,...注意运算最后的齐次坐标的w分量应该总保持为0或1
w为0的向量表示3D方向, w为1的向量表示3D的点
四种最基本的三维变换:
缩放: 只在需要缩放的轴对应的对角线上设置倍率, 其他位置保持0...., 这个特性动手推一下就能够得到, 本质是因为与x和z轴的时候不同, 绕y轴旋转时, z的初始位置是(0, -1), 本质是手性带来的不对称性.