- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三打字游戏的实现
上机实验须知
实验名称:
打字游戏的实现
实验目的:
在掌握Flash中坐标系统的应用以及帧延迟循环的应用的基础上,结合人机交互的技术,实现一个美观实用的完整的Flash打字游戏。
实验环境:
高档微机
Windows操作系统中文版
Flash CS3 Professional中文版
实验原理:
通过侦听Flash的键盘事件,获取事件对象,然后通过事件对象的keyCode值可以确认发生事件的是哪个按键。例如按下J键,那么Flash就会自动产生一个键盘事件对象,其keyCode值为74。每个按键都有一个唯一的键控代码,如附录所示。其它知识点基本上涵盖在坐标系统与延迟帧循环中,这里不再赘述。
实验内容:
本游戏开始之后,在屏幕下方不断出现上升的气球,每个气球上面都有一个字母,敲击键盘上对应的字母后,气球就会破裂。游戏时间为1~5分钟,游戏结束后会显示打字的速度和准确率。
游戏分析:
打字游戏的原理非常简单,只要侦听键盘事件,并判断键盘所代表的字母是否在屏幕上,并做相应的处理即可。
实验步骤:
制作气球角色
气球是一个类似弹球的角色,它内部时间轴的延迟循环实现了自动上漂以及爆炸后文字下落的运动效果,并提供一些对外函数,从而实现设置气球颜色、设置字母、爆炸等等视觉效果。
气球角色对外的属性和方法如下:
属性和方法 说明 inStage: Boolean 气球是否在舞台上(上漂)的标识符 idle: Boolean 气球是否空闲的标识符 setColor(col:uint) 设置气球的颜色 init(index:int) 初始化气球的各个状态 bomb() 气球爆炸 blast(speedLevel:int) 发射气球 已经完成了气球角色的时间轴如下图所示:
气球角色的时间轴
它有三个可视对象:气球皮肤、气球外框和显示字母的动态文本框。其中气球皮肤用来设置气球的色彩以及爆炸的动画和声音效果,这里不再赘述。设置三个对象的实例名称分别为edge、skin、txt_char。
action图层的第1帧代码为:
var inStage:Boolean,idle:Boolean;
var speed:Number;//气球的速度
var index:int;//气球的索引
var g:Number;//重力加速度
stop();
function setColor(col) {
var ct:ColorTransform = new ColorTransform();
ct.color=col;
skin.transform.colorTransform =ct;
}
function init(i:int=-1) {
index=i
if (index!=-1) {
txt_char.text=String.fromCharCode(index+65);
}
//设置气球的各个初始状态
setColor(uint(Math.random()*0x88FFFF));
edge.visible=true;
skin.gotoAndStop(1);
gotoAndStop(1);
this.y=420;
inStage=false;
idle=true;
g=0;
speed=-2;
}
function bomb() {
edge.visible=false;
skin.gotoAndPlay(2);
inStage=false;
g=0.5;
speed=-speed;
}
function blast(speedLevel:int=2) {
this.x=Math.random()*510+20;
speed=speed*speedLevel;
inStage=true;
idle=false;
play();
} 第2帧代码为:
this.y += speed;
if (this.y=-20) {//气球已经飘出舞台外
MovieClip(parent).loseBalloon();
this.y = 420;
init();
}
if (this.y=440) {//打落的字符已经掉出舞台外。
init();
} 第3帧的代码为:
gotoAndPlay(2); 在库中选中气球剪辑,点击右键选择“链接”,钩选“为ActionScript导出”,设置其链接名字为Balloon。
游戏主场景设计
已完成的游戏主场景时间轴入下图所示:
打字游戏的主时间轴
其中背景为一张静态的图片。按钮图层放置着游戏各个阶段所需的可视对象。
第1帧的界面如下图所示:
打气球游戏的第1帧
这一帧的作用是显示游戏名字、说明并等待开始。设置“开始”按钮的实例名称为:bt_start。
原创力文档


文档评论(0)