动画数据结构:
模块信息: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盒子,来做碰撞检测,这样就可一大大提高效率。