本系列文章由七十一雾央编写,转载请注明出处。
http://blog.csdn.net/u011371356/article/details/9394465
作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo
在这个教程中主要内容是2D游戏,关于3D游戏,雾央也还在努力学习之中,等以后有时间,一定会把自己学到的知识分享给大家,所以这一节中主要讲解的就是2D游戏中的障碍物判定了,45度地图以后要有时间雾央会讲。
上一节中讲解了近似的矩形判定,这是一种比较常用的判定方式,很适合于两个移动的物体之间,比如很多跳跃类游戏中移动的台阶和人物之间的碰撞,但是在地图障碍物判定上就显得有些力不从心了。这一节雾央将会给大家讲解几种新的碰撞检测方法,对于新手朋友们可能内容略多,不过只要认真阅读,多思考思考,应该是不难理解的,如果有什么问题,欢迎大家留言讨论。
在玩游戏的时候,有些河流断崖等地方是不能通过的,高处跳跃落下的时候是不会穿过地平线的,石头挡着的地方是绝对不能路过的…………这些检测都属于地图障碍物判定的范围。
大家在开发游戏的时候,地图的结构类型不同,采用的障碍物判定一般也就不同,地图类型和障碍物检测联系密切,因此雾央会介绍一下不同地图类型可以采取的方法。
在介绍之前,雾央必须要说明一个前提:在雾央的教程里,做碰撞检测时,人物都是使用最小外接矩形进行的。大家当然可以逐像素进行,即遍历整个人物矩形,当检测到人物图形和背景图片在同一位置都具有像素且是障碍物的时候,即发生碰撞。这样去掉了人物图片透明处带来的误差,但是太过于低效,雾央觉得大家初学游戏没有必要追求这么高的精确度,同时也可以大大简化问题。
一、TileMap
现在在家的同学请回头看一下背后,嗯,什么诡异的事情都没有发生,呵呵,开个玩笑了。我们要看的其实是地面,大家看到的是不是像下面这样?
这个地面是雾央在网上找的一张图,大家想象一下,如果将其中的某些块瓷砖画上石头,画上树木、房屋等,在把瓷砖之间的分界线给隐藏起来,比如下面这样,那么它像什么?