Flash游戏开发四Word格式.docx
- 文档编号:21734450
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:74
- 大小:632.49KB
Flash游戏开发四Word格式.docx
《Flash游戏开发四Word格式.docx》由会员分享,可在线阅读,更多相关《Flash游戏开发四Word格式.docx(74页珍藏版)》请在冰豆网上搜索。
图4-2设置影片属性
(2)把“图层1”命名为“背景”,执行菜单栏“插入”|“新建元件”命令,新建一个图形元件,命名为“背景”,单击“确定”按钮,进入编辑区。
单击工具箱中的“线条工具”按钮
,在“属性”面板中设置大小为5.75px,格式为虚线,自制一个背景,如一个大的“井”字,如图4-3所示。
回到场景中,在第16帧处按F5键插入相同帧。
图4-3绘制一个背景
(3)执行菜单栏“插入”|“新建元件”命令,新增两个图形元件,它们是游戏双方棋子的表示符号,分别命名为“圆圈”和“打叉”,通过工具箱中的“椭圆工具”按钮
和“线条工具”按钮
来完成,其大小及格式与步骤
(2)中设置的相同,其绘制的效果如图4-4所示。
图4-4绘制双方的表示符号
(4)按Ctrl+F8快捷键,新增一个影片剪辑,名称为“MC”这是制作产生“圆圈”或“打叉”的影片剪辑,在第2帧处按F6键插入关键帧,把“圆圈”元件从“库”面板中拖入编辑区。
在第3帧插入关键帧,把第3帧中的“圆圈”元件删除后,将“打叉”元件从“库”面板中拖进编辑区,如图4-5所示。
(5)单击
返回到主场景,新增一图层并命名为“组件控制”,把MC影片剪辑分别放进“井”的9个位置,由于MC影片剪辑的第1帧没有图形,不会显示有图像,所以将场景1内的9个MC影片剪辑的实体命名为“ox1”,“ox2”,“ox3”,...,“ox9”,排列的顺序如图4-6所示。
图4-5制作MC影片剪辑图4-6MC的排列示意图
(6)执行菜单栏“插入”|“新建元件”命令,新增一个按钮元件用来实现鼠标与场景的交互作用,名称为“button”,这个按钮没有图像,所以我们只在“点击”帧画上一个适当大小的矩形(104px×
82px),如图4-7所示。
图4-7制作“点击”区
(7)双击“库”面板中的MC影片剪辑,进入MC编辑区,把button按钮拉到第1帧处,返回场景1中,这时的主场景如图4-8所示。
图4-8排列的MC场景
4.1井字过三关
(2)
2.智能命令的加入
(1)接下来开始游戏的编程工作。
首先进入MC影片剪辑的编辑页面,在时间轴上单击“插入图层”按钮
新建一个图层,命名为stop层,在第1帧加入停止命令“stop();
”。
(2)单击MC编辑区内的button按钮,并在“动作-按钮”面板中输入下面的语句:
on(release){
gotoAndStop
(2);
}
//当我方按下鼠标后,显示第2帧的“圆圈”图形
set("
_root."
+_name,"
1"
);
//记录这格已经被画了“圆圈”,告诉计算机不可把棋子放在这一格,通过set();
(设置的参数)可以来完成,因为在变量名称中部分使用了其他的变量_name(名),所以用表达式("
+_name,)来表示_root.winox1,_root.winox2,…而这段语句描述的结果则会变成:
_root.ox1=1,_root.ox2=1,....,这是Flash中表现“数组”最简单的方式
再用相同语法设定一阵式,用来记录我方下过哪些子:
_root.win"
//如果_root.winox1=1、root.winox2=1、_root.winox3=1表示这3格都是圆圈,我们便胜利了,设定了一个["
+_name],这个数组可以表现为如下9个变量:
_root.winox1
_root.winox2
_root.winox3
_root.winox4
_root.winox5
_root.winox6
_root.winox7
_root.winox8
_root.winox9
胜利的条件是,任何一种图形组合连成一线。
3个变数要是1,3个1的和即等于3,所以判断方式是,哪一种组合总和等于3。
把判断式放进condition中,用or连起来,因为只要其中一种成立便可以了,程序如下(即加入动作):
if(Number(_root.winox1)+Number(_root.winox2)+Number(_root.winox3)==3or
Number(_root.winox4)+Number(_root.winox5)+Number(_root.winox6)==3or
Number(_root.winox7)+Number(_root.winox8)+Number(_root.winox9)==3or
Number(_root.winox1)+Number(_root.winox4)+Number(_root.winox7)==3or
Number(_root.winox2)+Number(_root.winox5)+Number(_root.winox8)==3or
Number(_root.winox3)+Number(_root.winox6)+Number(_root.winox9)==3or
Number(_root.winox1)+Number(_root.winox5)+Number(_root.winox9)==3or
Number(_root.winox3)+Number(_root.winox5)+Number(_root.winox7)==3){
//当满足胜利条件便进入一个名为“win”的帧,因为该帧位于场景1的时间轴中,所以要先加入tellTarget命令,target设为_root,即主编辑区,再加入如下跳播命令,帧标签设置为win
tellTarget("
_root"
){
gotoAndStop("
win"
最后我们还要制作计算机不进攻也不防守时放叉子的位置,程序代码为:
if(_root.checkeq"
0"
//先判断计算机是否放过棋子,可以从_root.check是否为0得知
for(_root.a=1;
_root.a<
10;
_root.a++){
if(eval("
_root.ox"
+_root.a)ne"
//"
+_root.a可以是_root.ox1~_root.ox9之间的变量,通过eval()得到该变量的值;
经for的定义,配合_root.a由1~9的数值,只要找到哪一格是空的,就下在那一格
+_root.a){
+_root.a,"
//设定该格放过棋子
_root.loseox"
gotoAndStop(3);
break;
//对方已在其选定的地方放过棋子,再用break跳出for的循环
所有计算机的动作,都要在我们下完子但还没胜利的时候发生。
整个button按钮的程序代码如下:
if(Number(_root.winox1)+Number(_root.winox2)+Number(_root.winox3)==3orNumber(
_root.winox4)+Number(_root.winox5)+Number(_root.winox6)==3orNumber(
_root.winox7)+Number(_root.winox8)+Number(_root.winox9)==3orNumber(
_root.winox1)+Number(_root.winox4)+Number(_root.winox7)==3orNumber(
_root.winox2)+Number(_root.winox5)+Number(_root.winox8)==3orNumber(
_root.winox3)+Number(_root.winox6)+Number(_root.winox9)==3orNumber(
_root.winox1)+Number(_root.winox5)+Number(_root.winox9)==3orNumber(
_root.winox3)+Number(_root.winox5)+Number(_root.winox7)==3){
//
}else{
_root.check="
;
call("
attack"
defence"
(3)接下来我们加入AI(人工智能)程序设计。
先设好当我们出现失误,让计算机的棋子放在正确位置。
如下列原始程序的代码及说明:
if(_root.loseox1eq"
and_root.loseox2eq"
and_root.ox3ne"
and_root.checkne"
_root.ox3"
lose"
//当计算机未下棋子,而ox1和ox2有计算机的棋子,且ox3是空的,就把计算机设成在ox3下棋子,ox3停止第3帧,即“打叉”图形,_root.check会设成1,再播放我们输掉的画面
同理,输入程序的其余代码:
if(_root.loseox2eq"
and_root.loseox3eq"
and_root.ox1ne"
_root.ox1"
and_root.ox2ne"
_root.ox2"
if(_root.loseox4eq"
and_root.loseox5eq"
and_root.ox6ne"
_root.ox6"
and_root.loseox6eq"
and_root.ox5ne"
_root.ox5"
if(_root.loseox6eq"
and_root.ox4ne"
_root.ox4"
if(_root.loseox7eq"
and_root.loseox8eq"
and_root.ox9ne"
_root.ox9"
and_root.loseox9eq"
and_root.ox8ne"
_root.ox8"
if(_root.loseox9eq"
and_root.ox7ne"
_root.ox7"
and_root.loseox4eq"
_root.check="
and_root.loseox1eq"
if(_root.loseox5eq"
if(_root.loseox3eq"
and_root.loseox7eq"
4.1井字过三关(3)
(4)因程序代码太长,所以我们在MC影片剪辑中新增一个图层“攻击层”来存放这些程序代码。
在时间轴上单击“插入图层”按钮
新建一个“图层3”,重命名为“攻击层”,在第5帧按F6键插入关键帧,再加入以上动作,新建立的“攻击层”如图4-9所示。
图4-9新建立的攻击函数层
(5)打开帧“属性”面板,将第5帧命名为“attack”,如图4-10所示。
图4-10命令帧为“attack”
(6)接下来制作防守程序,使用的程序代码和上面的差不多,不同的代码如下:
if(_root.winox1eq"
and_root.winox2eq"
and_root.checkeq"
_root.ox3="
_root.loseox3="
//当计算机未下棋子,而ox1、ox2是我方的棋子时,计算机会将棋子下在ox3位置,且_root.check会设成1
程序的其余代码如下:
if(_root.winox2eq"
and_root.winox3eq"
and_root.check
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Flash 游戏 开发