8、更真实的下落与碰撞效果
现在小球的下落是匀速的,而弹起的动画效果没有增加速度衰减。加入一些物理数值进行计算,会更好地增加动画效果。
实际上有许多比较专业又开源的物理引擎,在数值计算上能够使用这些物理引擎库对游戏进行开发。比如phyX和Box2D,这两个都是开源引擎,在游戏还有其他领域使用诸多。后续会使用这些物理引擎,现在简单实现一下效果。
1)显示函数改进
写一个显示函数,其中动画显示函数中加了一个边界检测,如果超过边界就重置小球的坐标,当然不仅可以检测一个方向一个边界,这些可以自由添加。
void games_anima_display(games_obj_t circle)
{
//防止显示超过边界
if (circle->anima->y > screen_height - circle->anima->r)
circle->anima->y = screen_height - circle->anima->r;
else if (circle->anima->y < circle->anima->r)
circle->anima->y = circle->anima->r;
else if (circle->anima->x > screen_width - circle->anima->r)
circle->anima->x = screen_width - circle->anima->r;
else if (circle->anima->x < circle->anima->r)
circle->anima->x = c