呵呵,偶尝试着做了个迷宫游戏,初次做,经验不多,还请大家PP呀
http://www.flash8.net/flash/11260.shtml下面是教程,请大家PP啊,呵呵
所谓“迷宫”,给玩家的第一感觉就是要够“迷”,即直觉上要给玩家一种“害怕”感觉。机关要够多,够复杂。在做迷宫游戏时,最重要的一点,是要设计一条非常曲折的出宫路线,这样可以增加游戏的难度和趣味性。我感觉这和设计者的思路,创意,还有经验有很大的关联。
好了,废话少说,进入正题!
我在做这个迷宫游戏的时候,首先是用
PS做好迷宫里的砖,这是用来搭建墙壁的。其次要设计好出迷宫的路线(偶可是改了好几次的,呵呵),再次把砖导入
FLASH的一个
MC里,这个
MC专门用来放迷宫里的墙。最后就是代码的编写了。
1、打开PS,新建一文档,如图所示:
http://www.7880.com/Upload/2004_Pack/2004102775743639.jpg" target=_blank>
http://www.7880.com/Upload/2004_Pack/2004102775743639.jpg" onload="if(this.width>screen.width-333)this.width=screen.width-333" border=0>
2、双击前景色,打开拾色器,对前景色做如图调整:
http://www.7880.com/Upload/2004_Pack/2004102775810979.jpg" target=_blank>
http://www.7880.com/Upload/2004_Pack/2004102775810979.jpg" onload="if(this.width>screen.width-333)this.width=screen.width-333" border=0>
3、然后选择“滤镜”-----“纹理”-----“纹理化……”,做如图调整:
http://www.7880.com/Upload/2004_Pack/2004102775930602.jpg" target=_blank>
http://www.7880.com/Upload/2004_Pack/2004102775930602.jpg" width=691 onload="if(this.width>screen.width-333)this.width=screen.width-333" border=0>
http://www.7880.com/Upload/2004_Pack/200410278013307.jpg" target=_blank>
http://www.7880.com/Upload/2004_Pack/200410278013307.jpg" onload="if(this.width>screen.width-333)this.width=screen.width-333" border=0>
4、选择“选框工具”,用选区截取其中的1到2个砖头,并复制到一个新的文件中,如图:
http://www.7880.com/Upload/2004_Pack/200410278043702.jpg" target=_blank>
http://www.7880.com/Upload/2004_Pack/200410278043702.jpg" onload="if(this.width>screen.width-333)this.width=screen.width-333" border=0>
把它存储为.gif格式的文件。到此,砖头就准备完毕了。5、打开LASH,把刚才做好的砖头导入库中。按CTRL+F8,创建一个MC,名字为“墙”。把砖头拖入图层1,然后在新建一层,命名为“路径”。在这个层里用来画出迷宫的路线,如图
6、路线画完之后,接下来就是要用砖头来建造迷宫了。这可需要很大的耐心呀!注意胡同的宽度要适中,方便方块行走。最后墙的效果如图所示:
7、 接下来要建两个方块,一个用来代替人走出迷宫,一个用来检测那个方块是否走出迷宫。按CTRL+F8,新建两个影片剪辑,分别命名为“方块1”和“方块2”。注意方块的宽度不要大于上图中胡同的宽度。再创建几个按钮,分别为“游戏开始”,“游戏说明”,“返回”按钮。
8、进入主场景。建立4个层,分别命名为“游戏的墙”,“游戏的点”,“游戏说明”,“游戏代码”。把作好的墙壁拖入游戏的墙图层中,把方块1和2拖入游戏的点图层中。游戏说明图层则用来放置按钮,游戏的文字说明,以及游戏的玩法。各个图层贞的设置如图示:
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
}
好了,迷宫游戏制作完毕。总结关键就在于迷宫路线的设置和碰撞检测代码的书写。这个游戏的难度不大,就算是入门之作吧,呵呵