4、主角飞机子弹的实现原理与敌机的碰撞
因为子弹的数量会有很多,敌机的数量也会很多, 所以每一颗子弹须要用一个对象来记录这当前子弹的X,Y坐标 与在屏幕中的绘制区域,每一架敌机也是一个对象,也记录着它的X,Y坐标与在屏幕中的绘制区域,这样在处理碰撞的时候其实就是每一颗子弹的矩形区域 与每一架敌机的矩形区域的碰撞。通过遍历子弹对象与敌机对象就可以计算出碰撞的结果,从而拿到碰撞的敌机对象播放死亡爆炸动画。
说到这里有些同学可能会想如果按照这样的思路将会频繁的创建子弹对象与敌机对象这样会造成内存泄漏等严重的问题。仔细想一下屏幕中须要绘制的子弹数量与敌机数量肯定是有限的,我们可以初始化固定的子弹对象与敌机对象 只对这些对象进行更新逻辑与绘制 ,举个例子 当前游戏屏幕中我最多须要5架敌机,代码中我就只分配5个敌机对象,分别检测这些对象 如果被子弹打中 或者向下超过屏幕底边,这时候可以对这个对象进行属性的重置,让这架飞机从新出现在上方的战场上,这样就实现在不增加飞机对象的情况下让玩家感觉有打不完的飞机,子弹对象同理。
Android游戏开发之飞行射击类游戏原理实现(2)
内容版权声明:除非注明,否则皆为本站原创文章。