【发布时间】:2011-12-03 12:52:29
【问题描述】:
好的,我有一些程序生成的地形(大致基于http://www.swiftless.com/terraintuts.html)
我有一个茶壶“飞机”,你可以用它(第三人称相机)飞来飞去
基本上,目标是飞过山谷等......而不会坠毁。
我不知道如何计算你是否与地形发生碰撞?
有什么想法吗?
【问题讨论】:
标签: c++ opengl collision terrain heightmap
好的,我有一些程序生成的地形(大致基于http://www.swiftless.com/terraintuts.html)
我有一个茶壶“飞机”,你可以用它(第三人称相机)飞来飞去
基本上,目标是飞过山谷等......而不会坠毁。
我不知道如何计算你是否与地形发生碰撞?
有什么想法吗?
【问题讨论】:
标签: c++ opengl collision terrain heightmap
地形图特别容易测试碰撞,因为地形图是从 2d 点 (x, y) 到地形高度 TERRAIN[x, y] 的地图。给定您的茶壶平面位于 (t_x, t_y, t_z),只需根据 (t_x, t_y) 处的地形高度测试其高度。也就是说,如果 t_z
【讨论】:
有整本专门用于碰撞检测的书籍,但在我正在开发的一个简单游戏中,我通过为定义其边界球体的每个实体创建一个半径来处理碰撞检测。在每一帧中,将所有实体与所有其他实体进行比较以找出它们之间的距离,如果距离小于两个实体的组合半径,则记录一次碰撞。
为此,我将每个类(例如火箭、怪物、玩家、树等)作为实体的子类,该实体持有碰撞发生时的逻辑,这意味着当火箭发射时,它可以杀死怪物,但只会燃烧一棵树(假设我有火箭和树实体)。
我遵循的一本很好的书,它更详细地解释了这一点:
http://www.amazon.co.uk/Beginning-OpenGL-Game-Programming-Second/dp/159863528X/ref=dp_ob_title_bk
【讨论】: