funcode微信版打飞机Funcode

上传人:cl****1 文档编号:489964702 上传时间:2022-09-24 格式:DOC 页数:35 大小:1.47MB
返回 下载 相关 举报
funcode微信版打飞机Funcode_第1页
第1页 / 共35页
funcode微信版打飞机Funcode_第2页
第2页 / 共35页
funcode微信版打飞机Funcode_第3页
第3页 / 共35页
funcode微信版打飞机Funcode_第4页
第4页 / 共35页
funcode微信版打飞机Funcode_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《funcode微信版打飞机Funcode》由会员分享,可在线阅读,更多相关《funcode微信版打飞机Funcode(35页珍藏版)》请在金锄头文库上搜索。

1、FunCode游戏开发设计文档微信版打飞机编写:2017年5月18日目录一、问题定义1二、实验准备1三、可行性分析3四、用例图及类图设计4五、时序图设计与流程描述135.1 游戏初始化135.2键盘相关函数设计145.3 游戏运行相关设计165.4 碰撞函数设计225.5 游戏结束设计23六、编码与实现24Plane 类24Player类25EnemyPlane类26Bullet类27PlaneItem类28SpriteFactory类28PlaneGame类29EnumDefine类32LessonX类34一、问题定义开发一款微信打飞机的小游戏,实现自己飞机击毁敌机得分,吃到加血物品加血,吃

2、到加魔的物品加魔,魔到一定值时可以通过吃掉相应物品在一定时间内获得不同的子弹发射方式和飞机移动速度。规则如下:1.按下空格键游戏开始。2.通过WSAD 键控制玩家飞机移动上下左右移动,但不能飞出边境。3.玩家飞机每隔一段时间自动发射一发炮弹。4.玩家飞机被敌机碰到后,生命值会减少,生命值变为0的时候,游戏结束。5.在游戏上方会一直出现电脑飞机(敌机),敌机分为大、中、小三种类型,越小的飞机出现的几率越大。6.敌机被玩家飞机击中后,生命值会减少,生命值变为0时,该敌机被摧毁,玩家得分。越大的飞机越难击毁,击毁后玩家得分也越多。7.敌机飞到界面下方时,删除敌机。8.在界面外用一个文本显示玩家游戏得

3、分。二、实验准备打开FunCode,创建一个新的C+项目。注意:项目名称必须为英文和数字,且不能有空格。点击“项目”“导入地图模板”,从对话框中选取名称为WarPlane的模板导入。导入成功后,界面如下:查看模板设置。模板设置中有如下几点,在项目开发时需要用到:精灵的名称,创建精灵对象时,通过精灵名称把对象和精灵图片绑定在一起。玩家飞机的链接点,右下图鼠标点击的位置就是玩家飞机的链接点,飞机发散子弹时,位置应该在链接点前方位置。 子弹的碰撞边界的设定,把碰撞边界设置在图片中的有颜色区域,这样敌方飞机实际是碰撞到子弹图片的有颜色区域才发生碰撞事件,从而是游戏效果更逼真。 在“场景预览”窗口中,点

4、击游戏屏幕之外的区域,然后在“编辑”面板中修改“窗口大小”,该属性用来设置游戏运行时屏幕大小。“屏幕位置”中的“宽”“高”则是用来设置“场景预览”窗口中可见区域的大小。按下图进行设置。也可以自行调整这两个区域大小,以及图片大小,从而达到最佳效果。三、可行性分析FunCode作为一个功能比较简单,封装的库函数不多的,游戏开发引擎,上手比较容易,对于开发平台的性能要求也不高,符合技术可行性和系统可行性。四、用例图及类图设计玩家控制飞机移动,飞机自动发射子弹,然后游戏一直循环,当飞机HP归0时游戏结束。飞机类作为其他所有和飞机相关类的基类,PlaneGame类是控制类,这个游戏的主要实现在Plane

5、Game类中完成。包括设定子弹、开火、删除已摧毁精灵、通过名字获得精灵、播放动画、创建敌机、创建物品等动作。类的具体定义如下:飞机类:Plane 继承自CSprite类属性private int iHP飞机生命值private float fPointX飞机当前位置中心点的X坐标private float fPointY飞机当前位置中心点的Y坐标private float fSpeedX飞机X轴方向移动速度private float fSpeedY飞机Y轴方向移动速度方法public int getHP()获取飞机生命值public void setHP(int hp)根据参数设置飞机生命值p

6、ublic float getPointX()获得飞机的X坐标public void setPointX(int x)设置飞机的X坐标public float getPointY()获得飞机的Y坐标public void setPointY(int y)设置飞机的Y坐标public float getMoveSpeedX()获得飞机X轴方向上速度public void setMoveSpeedX(float speedX)设置飞机X轴方向上速度public float getMoveSpeedY()获得飞机Y轴方向上速度public void setMoveSpeedY(float speed

7、Y)设置飞机Y轴方向上速度敌方飞机类:EnemyPlane 继承自Plane类属性private int iValue敌机价值,即玩家飞机击毁敌机后可获得分数private int iType飞机类型。0 大型敌机 1 中型敌机 2 小型敌机方法public int getValue()获取敌机价值public void setValue(int value)设置敌机价值public int getPlaneType()获取敌机类型public void setPlaneType(int planeType)设置敌机类型玩家飞机类:Player 继承自Plane类属性private int i

8、Score玩家得分private float fFireTime玩家发射子弹的时间间隔,可理解为安装子弹需要的时间private float fUsedTime玩家飞机安装子弹已经用去的时间private int iMp魔抗值private bool flag标志位方法public int getScore()获取玩家得分public void setScore(int score)设置玩家得分public float getFireTime()获取玩家子弹发射间隔public void setFireTime(float fireTime)设置玩家子弹发射间隔public float get

9、UsedTime()获取玩家飞机装弹已用时间public void setUsedTime(float usedTime)设置玩家飞机装弹已用时间public void move()玩家飞机移动public void stopMove(int hp)忘记飞机停止移动public void fire()玩家飞机发射子弹public int getMP()获得魔抗public void setMP(int mp)设置魔抗public bool getflag()获得标志位public void setflag()设置标志位子弹类:Bullet 继承自Plane类属性private int iDam

10、age子弹伤害值方法public int getiDamage()获取子弹伤害值public void setiDamage (int val)设置子弹伤害值精灵工厂类:SpriteFactory属性private static int iId静态成员变量。缺省值为0,每复制一个精灵时递增一次,用于作为新生成的精灵名称的后缀。例如:plane1, plane2, bullet3方法public CSprite *getSprite(int type)获取生产出的精灵。type:0 大型敌机 1 中型敌机 2 小型敌机 3 玩家飞机 4 子弹5,6,7,8,9 物品private static

11、Player *createPlayer()创建玩家飞机对象private static EnemyPlane *createEnemyPlane(const int iType)创建敌方飞机对象private static Bullet *createBullet()玩家子弹精灵对象private static PlaneItem *createItem(const int iType)飞机游戏类:PlaneGame属性private static PlaneGame *pGame游戏对象private CTextSprite *pTextScore显示玩家得分的文本精灵private CT

12、extSprite *pTextHp显示玩家生命值的文本精灵private CTextSprite *pTextMp显示玩家魔抗值的文本精灵private Player *pPlayer玩家飞机private List spriteList精灵集合private float fCreateEnemyTime生成一架新敌机的时间间隔,即生产一架新敌机需要的时间private float fUsedEnemyTime生产一架新敌机已经用去的时间private float fCreateItemTime生成一个物品的时间间隔,即生产一个物品需要的时间private float fUsedItemTi

13、me生产一个物品已经用去的时间private float fMPTime魔法能持续的时间private float fMPUsedTime魔法已经持续的时间private int bulletType子弹的类型private float speed飞机加速后的速度方法private PlaneGame()单例模式的做法,构造函数是私有的,用户不能直接创建该类对象public static PlaneGame *getPlaneGame()用户只能通过该方法获得PlaneGame对象,且对象为同一个public CSprite *getSpriteByName(const char* name)

14、通过名称从集合中获取精灵(敌方飞机、子弹)public void setTextScore(int score)设置显示玩家得分的文本精灵对象public void setTextHp(int hp)设置显示玩家血量的文本精灵对象public void setTextMp(int mp)设置显示玩家魔抗的文本精灵对象public int getBulletType()获得子弹类型public void setBulletType(float time)根据时间设置子弹类型public void setBulletType(int type)设置子弹类型public float getfMPTime()获得魔抗能持续的时间间隔public void setfMPTime(float val)设置魔抗能持续的时间间隔public float getfMPUsedTime()获得魔抗已经持续的时间void setfMPUsedTime(float val)设置魔抗已经持续的时间public Player *getPlayer()获得玩家飞机public vo

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号