logo资料库

funcode大鱼吃小鱼教程.doc

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
大鱼吃小鱼实训指南
游戏规则
实验准备
类的设计
游戏流程
主流程
游戏初始化
游戏运行
游戏结束
生产精灵对象
键盘按下事件
键盘弹起事件
精灵与精灵的碰撞
世界边界碰撞事件
实验任务
任务一 完成类的定义
任务二 实现SpriteFactory类
任务三 游戏初始化
任务四 键盘按下事件
任务五 键盘弹起事件
任务六 完成游戏运行
任务七 精灵与精灵的碰撞
任务八 精灵与世界边界的碰撞
任务九 完成游戏结束
大鱼吃小鱼实训指南 游戏规则 1. 按下空格键游戏开始。 2. 通过 WSAD 键控制玩家鱼上下左右移动,但不能游出边境。 3. 克隆出多条鱼放在容器当中。 4. 克隆出来的容器中的鱼从右向左移动,不同的鱼游动的速度不同。 5. 当玩家鱼碰撞到了容器中的鱼,删除容器中的鱼,并增加玩家鱼的得分。 6. 当容器中鱼没有被吃到,而是撞到了左边世界边界,则从玩家鱼的分数中减去该鱼的价 值,当玩家鱼的分数被减为负值,游戏结束。 实验准备 打开 FunCode,创建一个新的 C++项目。注意:项目名称必须为英文和数字,且不能有 空格。 点击“项目”→“导入地图模板”,从对话框中选取名称为 FishEatFish 的模板导入。 导入成功后,界面如下: 查看模板设置。模板设置中有如下几点,在项目开发时需要用到: 精灵的名称,创建精灵对象时,通过精灵名称把对象和精灵图片绑定在一起。
点击“启动 VC 工程”,将 VC 打开: 类的设计 游戏中能直接看到的精灵:玩家鱼、电脑鱼、玩家得分文本、玩家等级文本。其中,玩 家得分和玩家等级只需要显示分数,可以直接使用 CTextSprite 类。玩家鱼、电脑鱼创建相 应的类。 可以从玩家鱼和电脑鱼抽象出一个鱼类,作为父类。 鱼类继承 CSprite 类,通过 CSprite 类的方法操作精灵。 创建一个游戏类,各个类之间的通信在游戏世界类中进行。本游戏是大鱼吃小鱼,该类 称为鱼游戏类。 创建一个精灵工厂类,用来生成各种精灵类的对象。这就是“工厂模式”。
游戏流程 主流程 游戏分四个状态:未开始、开始、运行和结束。CGameMain 类是控制游戏流程的类,游 戏屏幕每刷新一次,调用一次该类的 GameMainLoop 方法。GameMainLoop 根据 m_iGameState 的值分别调用该类的 GameInit、GameRun 和 GameEnd 方法。这三个方法对应初始化游戏、游 戏运行和游戏结束这三个状态。GameInit 只执行一次。执行后修改游戏状态。屏幕刷新后, 进入状态 2,开始执行 GameRun 方法。当玩家积分>=0 即玩家鱼不死的时候,GameRun 一直 被执行。玩家鱼死亡后,调用 GameEnd 执行一次,清除本局游戏数据,恢复游戏未开始状态。
游戏初始化 完成游戏初始工作,界面上的工作:玩家积分和等级显示为 0,创建玩家鱼并放置在指 定位置,并且把玩家鱼对象加入到 FishesWorld 对象中。
游戏运行 游戏运行中,每刷新一次屏幕,需要根据最新数据,更新玩家得分和等级,移动玩家鱼, 删除被吃掉的电脑鱼,当达到相应的时间间隔时,创建新的电脑鱼。 游戏结束 将游戏中剩余的精灵删除,包括删除精灵本身和集合中对应的对象。 重新显示游戏开始的提示图片。
生产精灵对象 本游戏中的玩家鱼、电脑鱼这两种精灵类的对象都在精灵工厂类中产生。根据参数确定 生产何种精灵。右下图是玩家飞机的生产过程,主要是创建对象,复制模板,并设置几个基 本属性(碰撞、世界边界、初始位置、初始速度)。
键盘按下事件 本游戏中,游戏状态为 0 时,按下空格键,游戏状态转为 1。游戏状态为 2 时,玩家按 下了 WSAD 键,分别设置玩家鱼的上下左右速度。 键盘弹起事件 本游戏中,游戏状态为 2 时,玩家松开 WSAD 键,设置玩家飞机对应方向上的速度为 0。 精灵与精灵的碰撞 本游戏中,玩家鱼设置为发送碰撞,电脑鱼设置为接收碰撞。精灵碰撞时,如果电脑鱼
等级比玩家鱼高,则玩家鱼减少积分,反之,玩家鱼增加积分。 世界边界碰撞事件 本游戏中,游戏状态为 2 时,玩家鱼碰到边界停止继续游动。电脑鱼碰到边界,设置该 鱼的生命值 hp 为 0。获得该鱼的价值,从玩家鱼当前的得分中减去该值。
分享到:
收藏