仿写打飞机学习总结
一、Android微信打飞机与iOS微信打飞机的区别
1.Android打飞机,同一时间屏幕上不止存在一个子弹,可能有三颗或更多,而iOS上的打飞机任意时间屏幕上至多存在一个子弹。
2.Android打飞机子弹是匀速的发射频率固定,而iOS上的打飞机子弹的运动速度可能与其发射坐标相关,距离屏幕上方越远子弹的飞行速度越快,距离敌机越近,发射频率越高。
3.Android打飞机大型飞机打击效果和iOS上打飞机的效果不同,Android为打一下闪烁一下,iOS为飞机低于一定血量时持续闪烁。
二、iOS打飞机特性
1.双枪的杀伤力等于单枪的杀杀伤力,但双枪的攻击范围较大,每30S随机出现,吃到持续12S。
2.敌机在打爆炸之后,微小时间内仍然是有碰撞体积的。
3.子弹是在距离顶端一定距离处回收,而不是出屏幕。
4.子弹的运动速度,以及发射速度很可能不是固定的。
三、大体实现思路
设计模型对象(Model) 子弹,英雄战机,三种不同的敌机。子弹与英雄战机相互认识,飞机可能改变子弹的发射状态,如单发双发,子弹依据英雄飞机的头部位置发射。三种敌机继承一个抽象的敌机。抽象敌机抽象出共有属性,如血量,移动速度。为不同飞机设计视图UIImageView,这里使用的是模型组合视图对象,如采用模型对象继承UIImageView实现简单一些。利用控制器完成整个游戏的控制。
在创建敌机对象时,可以才用工厂方法模式,或是简单工厂模式,会是代码的可维护性提高。另外,对于iOS打飞机来说,子弹对象和英雄战机只有一个无需重复创建。