这两天在模仿着微信上的打飞机小游戏,用Cocos2d-x游戏引擎实现。
选择模仿这个游戏,主要是因为网上资料较多,CSDN上面也有介绍做这个游戏的专栏(点这里),所以可以学着做。帮助自己逐步了解这个引擎。这两天做了点基本的工作,做了游戏的启动界面和游戏界面,游戏界面的背景图滚动,英雄飞机的触摸移动。然后今天上午要上课,在其余的时间里实现了子弹跟随英雄飞机的移动,添加了敌机。然后关于敌机层,有以下的初想:
1、游戏中有三种不同类型的敌机,一种小型飞机、一种中型飞机、一种大型飞机。飞机类型的不同,主要造成:飞机的生命值不同(能挨的子弹数不同);打掉不同类型的飞机的得分值不同;飞机的飞行速度和刷新速度不同,并且飞机的飞行速度和刷新速度会根据得分值的增加和加快,这也是一个需要考虑的地方。
2、基于以上考虑,敌机层的设计要包括:要有一个接收得分而提升等级的接口;有三种不同类型的定时刷新函数,用来在屏幕上增加敌机;三个定时刷新函数里面的敌机飞行动作,包括moveTo,moveEnd动作;敌机挨到子弹的爆炸动画;单独写每个刷新函数中的moveEnd回调函数和爆炸回调函数;爆炸回调函数包括单个飞机挨到子弹的爆炸回调和用户使用炸弹使得全部飞机爆炸的回调函数(即移除全部飞机);
3、关于碰撞区域直接用boundingBox方法,简单,可以一定程度上减少工作量。
4、想法:前面提到的那个博客专栏在敌机层的设计中,单独写了敌机精灵类,主要用于控制敌机生命值。是否也要借鉴这个做法单独写个精灵类出来?
现在的进度截图:
开始界面:
在开始界面做了个飞机动画,这个飞机动画是加载图片缓存的回调函数,做的不是很好;
开始界面飞机飞两次之后,便会自动切换到游戏界面,用了CrossFade切换特效;
游戏界面:
游戏界面,英雄飞机可以根据触摸移动,有子弹,有敌机,但还没有做碰撞检测。
大概就是这些了。