
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所示:
图128. 在图层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))
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所示:
0
图17
1
图18
点击 下载源代码
无忧站长学院,建站自然无忧www.5ucms.org