3D游戏开发步步高系列课程(4)
碰撞检测和处理
付仲恺
微软特邀开发专家
我们将涉及到…
• 学习3D游戏 ‘Puc the Pirate’ 的开发
议题
• 网格系统及运动
– 坐标系映射
– 网格坐标系
– 基于结点的运动
• 碰撞检测
– 应用球体碰撞检测
基础知识
• 基本计算机知识
• 基本软件开发(C#)知识
Level 200
Level 200
议题
• 网格系统及运动
– 坐标系映射
– 网格坐标系
– 基于结点的运动
• 碰撞检测
– 应用球体碰撞检测
网格坐标系系统
• 在基于网格的游戏中,所有的物体都是使用预
先定义的距离来放置
– 适用于平面地图游戏的坐标描述
• 如:战棋类,简单的即时战略类游戏
– 例如:cookie的放置
• 所有的cookie都在水平和竖直方向上对齐
• Cookie前后之间距离相等
• 使用网格地图坐标系系统来描述
网格坐标系系统
• 网格坐标系系统是局部坐标系系统
– 为了便于描述游戏逻辑和物体的位置
• 例如,在战棋类游戏中所有物体都位于2维空间中
– 不能够被DirectX直接使用
– 在使用时需要先转换为世界坐标系
坐标系系统映射
• 网格坐标系系统与我们的世界坐标系系统不
同,但是相互之间具有映射关系
– 网格坐标系是2维的,而世界坐标系是3维的
– 两个坐标系的原点和坐标轴都不同
• 当物体位于结点坐标系系统的(2,3)坐标时,这个物
体在世界坐标系中并不位于(2,3,0)坐标
• 从网格坐标系系统到世界坐标系系统需要经过映射
– A = F(B), F是将点从坐标系系统B映射到坐标系系统A的函数
– 1-1的映射关系