1、 图片素材放supporting files
2、添加背景移动
for循环加两张背景图片,坐标不同。
注意Y轴坐标设定要和for循环的i关联。
开timer 使得背景图移动。
两图都需要移动,且是同时同步移动,先用数组存放。
遍历
下屏幕下方移动,会移出屏幕,让移出屏幕的再回到屏幕上方。
3、添加自己的飞机
Hero类中
开timer
加方法 奇偶数
实现喷气效果
在ViewController中引入Hero类。
初始化
宽高设置
center设置
4、发射子弹
hero创建出来就要发射子弹
timer少开 尽量复用 于是:
在hero.m中加子弹,借用Hero的实现喷气效果的timer。
注意:加到界面中 addSuperview–指的是ViewController中得self。
移动子弹
子弹越来越多
占用资源。
做判断 将出界面的子弹View删除,也从数组删除。
修改了forin循环的数组,break 跳出一层循环。
5、飞机移动
添加:iPhone5全屏按钮320*568 注意坐标
左右分割
按左 hero向左 左右button一起移动
按右边button同理。
按钮效果,不佳。
改成触摸 touchesMove。
触摸与之前添加的button按键 行为冲突。
记得关button的交互。
6、添加敌机
Enemy父类 移动位置代码 速度属性
加子类
viewController中加
加touchesBegan
小中大敌机出现的概率按6: 3: 1比例。
7、碰撞检测
子弹 敌机碰撞
两个数组准备好。
加敌机数组时 注意使用多态。
遍历 碰撞
添加敌机血量属性。
大中小敌机血量 10:5:1
8、爆炸效果
本质 换几次图片
递增数。
停timer方法:
传参数timer过来到要调用的方法中
最后 timer invalidate
hp变为零
爆炸换图片
换完图
消失 移除View
9、hero爆炸
敌机和hero碰撞
hero爆炸 换图
停止喷气timer
10、计分
lable直接拖动会被盖住
代码创建lable
在别的地方用到。
用属性lable
加分
取分数 截取字符串
专门设置一个 价值属性
点是否进入到矩形当中
CGRectContainPoint
碰撞的也要炸。
添加敌机的dead方法。
死亡出结果