动画间的碰撞

来源:互联网 发布:下载美图软件 编辑:程序博客网 时间:2024/04/27 14:32

动画数据结构:

模块信息:clip[][]

帧信息:frame[][]

动画帧信息:ani[][]

画模块: draw(clip[id],x,y)

画帧:

for:

draw(frame[frame index],fx+cx,fy+cy)

end for

画动画:

draw(ani[frame index],ax,ay)

 

如果要动画碰撞检测,最简单的办法就是动画之间每个模块之间做检测,如果碰撞了马上返回,很显然,这样做效率是多么的低下:如果碰撞的2个模块在最后,要比较到最后才能出结果,而且很多模块相互覆盖重叠使效率大大降低。

像上篇文章一样,做一些碰撞模块,添加到帧里面,这些模块根本就不画,只是用来做碰撞检测用的,用一些大的模块代替许多小的模块。比如身体头等这些部位,虽然模块却很多,但其实碰撞检测用一个矩形就可以了。还可以把这些模块分析组合,作成AABB盒子,来做碰撞检测,这样就可一大大提高效率。