4、 游戏具体制作:
一切准备好后,我们就可以开始具体的游戏制作了。
首先回到主场中,新建如下的几个图层(图四):
1.actions层:单独用来放置actionscript的层,这是个好的习惯。 2、maze hider,用来放置按钮的层 3、opponet层:放置电脑移动方块的层。 4、player层:放上我们要移动方块的层。 5、maze boundries层:放置迷宫图的层 6、background层:背景层。 7、goal层:放置用来检测是否到达对方的起点的层。

图四
我们可以注意到,在做flash的时侯,如果每个元素放置在单独的层中,这样我们就比较好控制了,而且最好每一层都写好相应的名称,这样的话我们就可以一眼看出来此图层的作用。 我们现在对每一层进行详细的解释:
★actions层:共有三帧,每一帧上写上stop();目的:使按钮起作用。在每帧上停顿。 ★maze hider层:共有三帧,每一帧上放置一个不同的mc,其中都包含了按钮。
在第一帧上的mc(maze hider),它的按钮上的action为:
on (release) { //:鼠标按钮释放 _root.started=true;//:标志变量started为true _visible = false;//:此mc不可见 _root.opponent.play();//:根目录下的mc(opponet)开始播放 _root.blinkArrows.play();//:根目录下的mc(blinkArrows)开始播放 }
在第二帧和第三帧上分别出现“你蠃了”和“你输了”的文字,并出现重新游戏的按钮,这个不用多说。
★opponet层上:放置MC(opponet),取它的intance name为opponet ★player层:放上我们要移动的方块。并取mc方块的intane name为(square) ★maze boundries层:放置迷宫图MC,并取mc的intance name为maze. ★background层:背景层。不用多说。 ★goal层:放置用来检测是否到达对方的起点,设mc的intane name为(goal)
到了这里,应该是差不多了,就差一个我们控制的方块怎么检测和迷宫的碰撞以及判断谁先到对方的起点。这个我们在maze这个mc中解决:
鼠标右击maze,选actions,我们会看到如下的actions:
onClipEvent (enterFrame) {//:响应mcclip的enterframe事件 if (_root.started && _root._currentframe == 1) {//:判断标志变量start=true及根目录为第一帧,则开始 with (_root.square) {//:对根目录下的square这个mc // // 键盘控制 if (Key.isDown(Key.DOWN)) { _y += 1; } if (Key.isDown(Key.UP)) { _y -= 1; } if (Key.isDown(Key.LEFT)) { _x -= 1; } if (Key.isDown(Key.RIGHT)) { _x += 1; } // //检测玩家的方块是否和迷宫的墙发生碰撞 if (walls.hitTest(getBounds(_root).xMax, _y, true)) { _x -= 1; } if (walls.hitTest(getBounds(_root).xMin, _y, true)) { _x += 1; } if (walls.hitTest(_x, getBounds(_root).yMax, true)) { _y -= 1; } if (walls.hitTest(_x, getBounds(_root).yMin, true)) { _y += 1; } // // 检测方块,要是方块和goal碰撞,就跳转到根目录下的第三帧。 if (_root.goal.hitTest(_x, getBounds(_root).yMax, true)) { _root.gotoandstop(3); } } } }
当然第三帧上,早就放好了我们想要的显示的内容,比如你蠃了等。
至此,我们的迷宫游戏就全部完成了,相信你也学会了一些东西。
点击 下载源代码
|