实验七 战场生存记过关版的实现.doc

上传人:hs****ma 文档编号:561635459 上传时间:2023-03-22 格式:DOC 页数:5 大小:222KB
返回 下载 相关 举报
实验七 战场生存记过关版的实现.doc_第1页
第1页 / 共5页
实验七 战场生存记过关版的实现.doc_第2页
第2页 / 共5页
实验七 战场生存记过关版的实现.doc_第3页
第3页 / 共5页
实验七 战场生存记过关版的实现.doc_第4页
第4页 / 共5页
实验七 战场生存记过关版的实现.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验七 战场生存记过关版的实现.doc》由会员分享,可在线阅读,更多相关《实验七 战场生存记过关版的实现.doc(5页珍藏版)》请在金锄头文库上搜索。

1、闽江学院教案课程名称Flash游戏编程 任课老师: 肖刚上机实验须知实验名称:战场生存记过关版的实现实验目的:在“战场生存记单人无关卡版AS3.fla”的基础上,设计关卡,“将战场生存记”游戏改造成过关类游戏。实验环境:1) 高档微机2) Windows操作系统中文版3) Flash CS3 Professional中文版实验原理:关卡其实就是游戏中一个个串连的任务。关卡类游戏的设计可以归结为游戏平台设计、参数设计以及必须和两者关联的程序逻辑设计三个部分。如下图所示:关卡示意图这里的参数是广义的概念,各种角色、资源、对象都是一种参数中的一种。现在我们将前面设计的游戏“战场生存记”改为带关卡的游

2、戏。游戏平台部分包括:为游戏主体界面,小兵的跑动范围,游戏的逻辑模式(单人角色扮演游戏),人机交互等。参数设计部分包括:大炮、地雷、炮弹、障碍物等物件,关联代码为多个支持关卡的变量: level(当前关卡)、totalLevel(关卡总数)、totalTime(关卡时限)、victory(胜利/失败)。每个关卡的大炮数量不同,有的关卡还有地雷或者障碍物。只要玩家能够坚持住一定的时间即进入下一关。先设计这个游戏的主流程图,如下图所示:关卡通用流程图其中关卡数可以继续添加。具体设计时将此流程图的每个过程对应为Flash中的一帧或者连续的几帧,注意帧之间的跳转应尽量使用帧标签以适应开发时帧数的变化。

3、关卡是一段连续的帧,其程序结构如下图所示:关卡内部的流程图在关卡初始化阶段完成本关卡游戏场景的准备,布置大炮、地雷,以及初始化游戏场景。初始化完成后即进入游戏阶段,当游戏任务完成或者失败,在退出关卡之前,那些以后不再使用到的资源、代码,都要清除干净,以免影响程序的其它部分。实验内容:设计适合关卡游戏的战场生存记游戏的基础框架以及各个物件,然后组织出几个关卡。基础框架沿用“战场生存记单人无关卡版AS3.fla”,仅修改其中的游戏胜利失败条件即可(原来的游戏只有失败没有胜利,现在改为坚持超过totalTime时间即为胜利)。游戏物件部分,大炮、炮弹等也一并沿用,仅多设计一个触雷,玩家角色一旦碰到触

4、雷即游戏失败。选做物件为设计一个障碍物,玩家角色不能穿越障碍物所在位置,从而增加游戏的难度。实验步骤:1) 设计触雷角色触雷角色与炮弹角色非常相似,但更简单,因为它没有运动。这里仅给出其第1帧代码,角色的其余部分读者自行完成。stop();var enemy:MovieClip=MovieClip(parent.getChildByName(hero);addEventListener(Event.ENTER_FRAME,repeat);function repeat(e:Event) if (enemy=null) return;if (hitTestObject(enemy) /碰到敌人了

5、gotoAndPlay(bomb);/自身爆炸enemy.dead();/指示敌人死去2) 组织游戏程序这个游戏完成时的时间轴如下图所示:游戏的时间轴第1帧是游戏开始界面以及各个具体的函数。接下来是四个关卡,最后两帧分别是胜利/失败界面和全部过关界面。角色图层放置着英雄角色实例(hero)、大炮和地雷等等。这些实例都是从库中直接拖出来,在可视化环境下布置好即可,不需要添加任何代码。与战场生存记相比,程序多了几个变量,它们分别是level(当前关卡)、totalLevel(关卡总数)、totalTime(关卡时限)、victory(胜利/失败)。这些变量在初始化程序和判断游戏流程时使用到。计时方

6、式改为倒计时,判断游戏成败的方式亦有所不同。总之,第1帧的代码,与前一个游戏不同的部分如下所示:var level:int=1;var totalLevel=4;var totalTime:int;var victory:Boolean;function startGame(e:MouseEvent) gotoAndPlay(level+level);function init() victory=false;time=totalTime;timeCountShow.text=String(time);levelShow.text=String(level);startTime=new Dat

7、e();hero.gotoAndStop(stop);stage.addEventListener(KeyboardEvent.KEY_DOWN,heroRun);/跑动stage.addEventListener(KeyboardEvent.KEY_UP,heroStop);/取消跑动stage.addEventListener(Event.ENTER_FRAME,checkGame);/检查游戏是否结束function checkGame(e:Event) showTime();if (hero.status=dead) play();/游戏失败,播放到关卡结束帧if (time=tota

8、lLevel&victory=true) gotoAndStop(win);/胜利画面 else if (victory) level+;txtResult.text=闯关成功; else txtResult.text=闯关失败;bt_continue.addEventListener(MouseEvent.MOUSE_DOWN,startGame);游戏结束画面较为简单,代码如下:stop();level=1;bt_restart.addEventListener(MouseEvent.MOUSE_DOWN,startGame);它表示如果点击重玩按钮,游戏将重新从第一关开始玩。3) 测试游戏,直到达到预期的效果。下图为这个游戏运行中的一个截图:过关游戏的截图至此我们完成了过关类游戏的设计。5

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

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