1.为了方便我们对游戏进行修改和调试,我们一般都需要把大部分的控制代码专门放到一个独立的mc总,这也是一个制作的好习惯。
2. 选取insertànew symbol菜单命令,在弹出的create new symbol面板中设置组件类型为movie clip,并给组件取名为Paddle Controller。
3. 在组件Paddle Controller的编辑状态下,我们新建两个图层layer2和layer3,连上组件莫认的layere1,一共有三个独立的图层。
4. 在图层layer2上,我们使用文本工具在编辑区中画两个大小适中的文本框,如图9所示:
图9
5. 在properties面板中分别设置这两个文本框为dynamic text类型,即动态文本框,左边的文本框我们用来显示得分,右边的文本框我们用来显示剩余的生命,所以分别在properties面板中设置它们的变量名var为score和lives,如图10和图11所示:
图10
图11
6. 然后将图层layer2延续到第22桢。
7. 在图层layer3上输入文本GET READY,作为游戏开始的提示信息,并将此桢延续到第18桢,如图12所示:
图12
8. 在图层layer3的第19,20,21三桢分别插入三个空白关键桢,然后在第22桢插入关键桢,从图库中将前面做好的重玩按钮放到编辑区中,如图13所示:
图13
9并给重玩按钮加as:
on (release) {
Score = 0;
Lives = 5;
gotoAndPlay(1);
}
//初始化游戏得分和生命值,并且跳到第一桢重新开始游戏
8. 在图层layer3的第19,20,21三桢分别插入三个空白关键桢,然后在第22桢插入关键桢,从图库中将前面做好的重玩按钮放到编辑区中,如图13所示:
图13
9并给重玩按钮加as:
on (release) {
Score = 0;
Lives = 5;
gotoAndPlay(1);
}
//初始化游戏得分和生命值,并且跳到第一桢重新开始游戏
10,回到图层layer1,在第1桢,第20桢和第21桢插入三个关键桢,给第1桢添加如下as:
xStep = Number(random(5))+6;
yStep = Number(random(5))+3;
//设置两个随机变量,其中xStep的范围是6-11,yStep的范围是3-8,random(N)这个随//机函数会产生一个从0到N的随机数
xModifier = random(10);
yModifier = random(10);
//设置两也随机变量,范围都是从0到10
if (Number(xModifier)>5) {
xStep = xStep-(xStep*2);
}
if (Number(yModifier)>5) {
yStep = yStep-(yStep*2);
}
//根据xModifier和yModifier这两个随机树取值的不同,对xStep和ystep两变量值//进行修改
if (Number(lives) == 0) {
gotoAndStop(22);
}
//如果lives值等于0,即生命值为0,则游戏结束,跳到第22桢也就是游戏结束画面
11. 第20桢添加如下as
horX = getProperty("/mousetrack", _x);
setProperty("/hor", _x, eval("horX"));
//取得对象mousetrack的横坐标,并赋给水平挡板hor,这样就控制了水平挡板和鼠标//的横坐标始终相等,使它们保持在一条垂直线上
vertY = getProperty("/mousetrack", _y);
if (Number(vertY)<245) {
setProperty("/vert", _y, eval("vertY"));
} else {
setProperty("/vert", _y, 245);
}
//设置垂直挡板的位置,并且规定了挡板的最大纵坐标值为245
BallX = getProperty("/Ball", _x);
setProperty("/Ball", _x, Number(BallX)+Number(int(xStep)));
BallY = getProperty("/Ball", _y);
setProperty("/Ball", _y, Number(BallY)+Number(int(yStep)));
//设置弹力小球的坐标值,经过一系列计算后,产生了一个随机的坐标值
12. 第21桢添加如下as
Lose = 0;
LeftConstraint = getProperty("/hor", _x)-47;
RightConstraint = Number(LeftConstraint)+94;
UpperConstraint = getProperty("/vert", _y)-47;
LowerConstraint = Number(UpperConstraint)+94;
yAccel = vertY-getProperty("/mousetrack", _y);
xAccel = horX-getProperty("/mousetrack", _x);
//定义一系列变量,LeftConstraint,RightConstraint,UpperConstraint,LowerConstraint
//设置了小球所能活动的范围
if (Number(getProperty("/Ball", _y))>270 or Number(getProperty("/Ball", _y))<30) {
if ((Number(getProperty("/Ball",_x))>Number(LeftConstraint)) and (Number(getProperty("/Ball", _x))
yStep = yStep-(yStep*2);
xStep = int(xStep-(0.15*xAccel));
Score = Number(Score)+50;
} else {
Lose = 1;
}
}
//此段程序判断小球是否碰到了水平挡板上,如果碰到了,则分数加50,然后设置小//球的反弹坐标,否则,标志位lose记为1,说明碰到了墙壁
if (Number(getProperty("/Ball", _x))>270 or Number(getProperty("/Ball", _x))<30) {
if ((Number(getProperty("/Ball",_y))>Number(UpperConstraint)) and (Number(getProperty("/Ball", _y))
xStep = xStep-(xStep*2);
yStep = int(yStep-(0.15*yAccel));
Score = Number(Score)+50;
} else {
Lose = 1;
}
}
//此段程序判断小球是否碰到了垂直挡板上, 如果碰到了,则分数加50,然后设置小//球的反弹坐标,否则,标志位lose记为1,说明碰到了墙壁
if (Number(Lose) == 0) {
gotoAndPlay(20);
} else {
setProperty("/Ball", _x, 150);
setProperty("/Ball", _y, 150);
Lives = Lives-1;
Score = Score-500;
gotoAndPlay(1);
}
//若没有让小球触到墙壁,即lose的值为0,则回到第20桢,继续游戏,如果小球触//到了墙壁,则重新设置小球的位置,并且分数减去500,生命值扣掉1,回到第一桢
//开始游戏
13最后的时间线如图14所示,到这里,本游戏中最关键的action就添加完了,下面我就可以开始布置主场景了。
图14
游戏场景的布置
1. 回到主场景中,新建立layer2到layer4四个图层。
2. 在图层layer1中,我们铺上一幅游戏背景图,可以自己在flash中画,也可以从外部导入一幅图片,如图15所示:
图15
3. 在图层layer2中,将组件Mouse Tracker拖到舞台上,作为传递鼠标值的中间角色,并在properties面板中给其命名为mousetrack。
4. 在图层layer3中,分别将组件Horizontal Paddles,Vertical Paddles和Paddle Controller放到舞台的合适位置,分别在properties面板中命名为hor,ver和Controller,如图16所示:
图16
5. 然后在图层layer3的第1桢家as:
stop();
/Controller:Lives = 5;
/Controller:Score = 0;
//初始化游戏得分和生命值分别为0和5
6.最后将组件ball放到图层layer4中,在properties面板中给其命名为Ball,并给图层layer4的第1桢加as:
setProperty("/mousetrack", _visible, "0");
startDrag("mousetrack", true, 55, 55, 245, 330);
setProperty("/quitspot", _visible, 0);
//设置对象mousetrack在游戏中不可见,并且对mousetrack进行拖动,使对象//mousetrack紧跟鼠标运动。
8. 止,整个游戏就做完了,最后的主场景和时间线分别如图17和图18所示:
图17
图18
点击 下载源代码
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 没有查询到任何记录。
最新文章
Flash CS4基础入门
如何在Flash中打开一个定制的浏览器新窗口?学习ActionScript 3.0的6个好处几个小技巧精简Flash文件体积在Flash动画中添加“加为收藏”和“设为首页
人气排行 Flash游戏制作--小熊拼图用Flash实现几种镜头效果Flash制作动画知识:遮罩Flash如何做鼠标指针样式Flash制作环形文字Flash制作声情并茂的电子相册实例讲解flashMTV制作全过程(3)鼠标效果系列教程:游动的鱼
查看所有0条评论>>