任 燕 曾金辉
(遵义师范学院计算机与信息科学学院,贵州 遵义 563002)
在这个网络发达的信息化时代,各种游戏如雨后春笋般涌现出来,比如有动作的、冒险的、策略的、射击的等等;游戏可以使人放松,因此现在已经很少有完全没接触过游戏的人存在了,游戏已渐渐成为人类文化艺术的一个重要组成部分。由于很多人都会沉溺于游戏中不能自拔,影响了他们的正常生活,所以现在游戏开发者也越来越倾向于开发益智类、接近生活类的游戏,如棋类游戏、球类游戏等。游戏的实质是一种交互式的应用软件,具备着交互、系统、画面、声音等元素的游戏才是一个完整的游戏。制作游戏的方法多种多样,而制作出的游戏也各有特色,当人们将注意力重心转移到简易与轻松的时候,Flash 游戏就一跃进入了人们的眼帘。
Flash 是一种交互式动画设计工具,用它可以将音乐、声效、动画以及富有新意与创意的界面融合在一起,以制作出高品质的动画游戏效果。Flash 使用矢量图形和流式播放技术,与位图图形不同的是,矢量图形可以任意缩放尺寸并且不影响图形的质量,生成的影片文件所占体积小;流式播放技术使得动画游戏可以边播放边下载,从而缓解了玩家焦急等待的情绪。Flash 游戏的算法实现,主要依赖于脚本即Flash 自身的ActionScript 语言,它是一种面向对象的程序语言,它可以控制Flash 中的对象,创建各种元素,扩展Flash 的交互能力和应用能力,将ActionScript 使用好,将是游戏制作成功的关键。使用Flash 制作的游戏拥有各种分类,最常见的类型主要有3 类,即:动作类(ACT),解谜类(AVG)与角色扮演类(RPG)。
我们知道,很多人长时间地待在一个地方一刻不停地工作,很难得到适当的休息,即使有空余时间休息,休息的时间也比较短暂,如果有不需要花太多时间、能速战速决的游戏,那么我们就可以在短时间内获得放松,因此有必要开发一个小型的Flash 动画游戏。按类型分类,五子棋游戏应该归类于解谜类游戏(AVG)之中的休闲小类,它是一种两个人对弈的纯策略型棋类游戏,属于益智型游戏,起源于中国古代的传统的黑白棋种之一。最初是在日本发展起来的,在欧美比较流行。它简单易懂,操作方便,适合工作学习之余想要放松自己的人群,同时也适合于对儿童进行逻辑思维能力的培养锻炼。
经过上面的需求分析,此五子棋游戏系统应包含系统初始化模块、下棋模块和结束模块3 大功能模块,其中下棋模块又包含初始化棋盘模块、玩家下棋模块和电脑下棋模块3个子模块。功能分别描述如下:
(1)系统初始化模块:显示游戏规则,并进入游戏。
(2)下棋模块:为电脑和玩家绘制且显示棋子,并为电脑分析最佳位置。
(3)初始化棋盘模块:设置电脑在棋盘中间固定位置下一个白棋子,并提示玩家接下一个棋。
(4)玩家下棋模块:为玩家绘制并显示一个黑棋子。
(5)结束模块:判断并显示输赢,然后重新开始或退出游戏。
游戏运行之后会显示游戏规则,在此处点击进入游戏按钮即可开始游戏。首先会初始化棋盘,电脑会下第一个点(白子),此时等待玩家落子(黑子),玩家落子后系统会判断此时谁达到了赢的条件,若都没有达到,轮到电脑思考、下棋,再判断,再交替,直到玩家或电脑达到赢的条件,此时显示结果并可选择是否重新开始或退出游戏。
(1)初始化棋盘模块:在这个模块中,必须先定义好棋盘的盘面坐标数组pmzb[15][15],玩家棋子数组wjqz[15][15][4]和电脑棋子数组dnqz[15][15][4],并将其初始化为0,定义棋子可能落子的8个方向,也就是4个对称方向的数组,并初始化棋盘,让电脑先在中间下一个棋子,然后把下棋权交给玩家。
(2)玩家下棋模块:该模块主要是接收玩家下的棋子的各种信息然后为玩家绘制棋子并作出相应的判断和记录,故在这里应该设置一个棋盘按钮来实现。
(3)电脑下棋模块:该模块采用冒泡法,冒泡法是一种排序的算法。在该模块中,为了使电脑能对棋盘上的棋子进行比较,需要定义一个列表函数用来记录棋盘上所有棋子的信息,如坐标、棋盘上还有没有空位置、各个方向的棋子情况等等,并作出相应判断,记录最佳位置,把最佳位置记录赋给主函数并绘制出电脑的棋子显示在棋盘上,最后把下棋权交给玩家,直到对弈结束。
根据五子棋游戏的制作需要,首先在Flash 中尽量把必须的一些影片剪辑、按钮、图片等3 种类型的元件准备好,为布置游戏场景做好充分的准备。经分析,图形元件有“棋盘”;按钮元件有“按钮1”、“进入游戏”、“重新开始”;影片剪辑元件有“规则界面”、“白棋”、“黑棋”、“棋盘按钮”、“下棋”、“电脑思考”和“游戏结束”等。
在主场景中,从【库】面板中将“棋盘”图形元件布置在图层1 对应帧上;将“白棋”、“黑棋”、“棋盘按钮”影片剪辑元件布置在图层2 对应帧上;将“进入游戏”按钮元件布置在图层3 对应帧上;将“规则界面”、“电脑思考”、“游戏结束”和“下棋”影片剪辑元件布置在图层4 对应帧上。并对在每个图层上添加的实例设置相应实例名。
新建图层,命名为“AS”,分别选择“AS”图层的第1 帧、第2 帧、第6 帧、第7 帧和第10 帧,按F7 键,插入空白关键帧。在相应帧上打开动作面板,添加相应代码。所涉及到的ActionScript 脚本代码主要有fscommand、if、gotoAndPlay、stop 等等。
在进行游戏发布之前进行游戏测试,按Ctrl+Enter 调用Flash 播放器对整个游戏进行调试。测试成功后打开属性面板,找到“发布设置”,在“发布设置”对话框中勾选Flash(.swf)、HTML(.html)、Windows 放映文件(.exe)3个选项,点击“发布”则可分别生成一个影片文件、一个网页文件和一个应用程序文件。
实践证明,由于Flash 具备着那些面向一般用户的软件所具有的便利性,使游戏开发过程变得比较简易,即使是面对新手也具有较强的可操作性。此外在小游戏范畴,使用Flash 所制作出的游戏即使和专业的程序设计软件相比,也毫不逊色。
[1]郝春雨,唐有明,朱俊成,等.Flash CS3 典型应用100 例[M].北京:电子工业出版社,2008:162-201.
[2]付岩.基于Flash 的游戏设计与开发[J].计算机光 盘软件 与应用,2013,3:173-174.
[3]肖刚.回合制Flash 游戏开发的通用框架[J].闽江学院学报:自然科学版,2006,27(2):53-56。