我做的一个迷宫游戏(图解) |
| 作者:佚名 来源:闪吧 作者: 闪客太子 更新:2007-1-13 20:43:25 错误报告 我要投稿 |
呵呵,偶尝试着做了个迷宫游戏,初次做,经验不多,还请大家PP呀 http://www.flash8.net/flash/11260.shtml 下面是教程,请大家PP啊,呵呵 所谓“迷宫”,给玩家的第一感觉就是要够“迷”,即直觉上要给玩家一种“害怕”感觉。机关要够多,够复杂。在做迷宫游戏时,最重要的一点,是要设计一条非常曲折的出宫路线,这样可以增加游戏的难度和趣味性。我感觉这和设计者的思路,创意,还有经验有很大的关联。 好了,废话少说,进入正题! 我在做这个迷宫游戏的时候,首先是用PS做好迷宫里的砖,这是用来搭建墙壁的。其次要设计好出迷宫的路线(偶可是改了好几次的,呵呵),再次把砖导入FLASH的一个MC里,这个MC专门用来放迷宫里的墙。最后就是代码的编写了。 1、打开PS,新建一文档,如图所示:
 2、双击前景色,打开拾色器,对前景色做如图调整:
 3、然后选择“滤镜”-----“纹理”-----“纹理化……”,做如图调整:

 4、选择“选框工具”,用选区截取其中的1到2个砖头,并复制到一个新的文件中,如图:
 把它存储为.gif格式的文件。到此,砖头就准备完毕了。5、打开LASH,把刚才做好的砖头导入库中。按CTRL+F8,创建一个MC,名字为“墙”。把砖头拖入图层1,然后在新建一层,命名为“路径”。在这个层里用来画出迷宫的路线,如图
 这里是需要经验和创意的,还有耐心,偶在做的时候改了好几次,呵呵
6、路线画完之后,接下来就是要用砖头来建造迷宫了。这可需要很大的耐心呀!注意胡同的宽度要适中,方便方块行走。最后墙的效果如图所示:
 等自己觉的满意了,不要忘了把路线给删掉呀,要不然的话,会被别人看到的,呵呵
7、 接下来要建两个方块,一个用来代替人走出迷宫,一个用来检测那个方块是否走出迷宫。按CTRL+F8,新建两个影片剪辑,分别命名为“方块1”和“方块2”。注意方块的宽度不要大于上图中胡同的宽度。再创建几个按钮,分别为“游戏开始”,“游戏说明”,“返回”按钮。
8、进入主场景。建立4个层,分别命名为“游戏的墙”,“游戏的点”,“游戏说明”,“游戏代码”。把作好的墙壁拖入游戏的墙图层中,把方块1和2拖入游戏的点图层中。游戏说明图层则用来放置按钮,游戏的文字说明,以及游戏的玩法。各个图层贞的设置如图示:
 其中游戏代码图层的各贞分别写stop();
9、下面是主要的代码。一些按钮上的代码是非常的简单的,这里我就不在赘述了。我是说说碰撞检测的代码。主场景中移动的方块实例名为“point”,在出口出的方块实例名为“point2”。
选择point,添加代码:
onClipEvent(enterFrame){ if(Key.isDown(Key.LEFT)){ this._x-=2; }//左方向键按下,方块x坐标减2 if(Key.isDown(Key.RIGHT)){ this._x+=2; }//右方向键按下,方块x坐标加2 if(Key.isDown(Key.UP)){ this._y-=2; }//上方向键按下,方块y坐标减2 if(Key.isDown(Key.DOWN)){ this._y+=2; }//下方向键按下,方块y坐标加2 if(this._y<=0){ this._y=1; }//如果方块的y坐标小于0,方块的y坐标就变为1.这是为了防止方块向上走出迷宫 if(this.hitTest(_root.point2)){ delete this.onEnterFrame; this._x=_root.point2._x; this._y=_root.point2._y; _root.gotoAndStop(4); }//如果这个方块与出口处的方块相遇,游戏胜利 } 选择墙壁MC,添加代码: onClipEvent(enterFrame){ if(this.hitTest(_root.point.getBounds(_root).xMin,_root.point._y,true)){ _root.point._x+=2; }//如果墙壁与point方块的左侧相撞,那么x就加2,这是为了抵消按下左键,方块向左移动2的效果.下面相同 if(this.hitTest(_root.point.getBounds(_root).xMax,_root.point._y,true)){ _root.point._x-=2; }//如果墙壁与方块的右侧相撞,那么x就减2 if(this.hitTest(_root.point._x,_root.point.getBounds(_root).yMin,true)){ _root.point._y+=2; }//如果墙壁与方块的上边相撞,那么y就加2 if(this.hitTest(_root.point._x,_root.point.getBounds(_root).yMax,true)){ _root.point._y-=2; }//如果墙壁与方块的下边相撞,那么y就减2 } 好了,迷宫游戏制作完毕。总结关键就在于迷宫路线的设置和碰撞检测代码的书写。这个游戏的难度不大,就算是入门之作吧,呵呵
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |