拼图
要求:
九个方格,八个图片,每次进入游戏的时候随机摆放图片,经过移动之后可以得到完整的总体图即算成功。
做法:
1.根据提供素材分别取实例名,假设为:1~9。
2.将实例名顺序放入预先定义的数组之中。
3.为了实现在进入游戏的时候就是随机的图片,于是将数组内的实例名通过random()随机交换。
4.将交换之后的数组依次取出放到舞台上。
5.通过控制键盘的方向键(上下左右)实现滑块的上下左右移动。
6.每次移动之后判断拼图是否已经完成,通过判断数组的实例名编号是否是顺序的。
代码综述:
PuzzleGames.as文件包括以下方法:PuzzleGame构造方法继承与MovieClip类;Reset()方法;randRange()方法,setPos()方法,onKeyboardUp()方法,Exchange()方法,checkFinish()方法。
代码详细分析
- .fla在导出.swf的时候自动运行自己的类,即自己的构造方法,通过构造方法的自动运行,从而运行构造函数当中的方法Reset(),同时为舞台增加键盘监听事件;
- Reset()方法分析:对在构造方法里声明的数组m_Array[]进行赋值,按序赋值为九个小图片的实例名,接着通过random()对其中的数组进行随机交换randRange(),然后调用setPos()将按照数组里的实例名依次排序,形成随机乱序的拼图。
- randRange()方法分析:通过调用math.random()函数进行第二次方法构造形成在调用randRange()函数时生成指定范围内的数字。
- setPos()方法分析:对m_Array[]数组内的实例依次排列在舞台上,设置每个实例的横纵坐标即可。
- onKeyboardUp()方法分析:监听键盘的每一次键盘点击之后向上弹起的事件‘addEventListenerKEY_UP’,对键盘的每一个keyCode进行判断,如果敲击的是‘空格’便执行Reset()方法,重置拼图,如果点击的是方向键,便执行Exchange()方法,根据方向键的不同,传入不同的参数。同时对每一次的键盘敲击之后执行checkFinish()方法用以检查当前拼图是否已经完成。
- Exchange()方法分析:对每次绿块以及想移动的滑块进行调换,同时记录每次绿快的位置,即m_nRow, m_nCol,以便下次进行转换的时候依旧转换的是绿块以及想要移动的滑块。然后重新setPos().
- checkFinish()方法分析:对每次键盘点击之后进行一次检查拼图是否已经拼好,即只需要判断m_Array[]的值是否依次与实例名相等,如果全部相等,则说明拼图已经拼好。
打字游戏:
根据游戏功能,代码主要分为二大模块,分别负责对准确度及速度的计算。
主要方法有:
- Monitor() 初始化页面
- onKeyboardUp() 键盘点击事件
- onMouseClick() 鼠标点击事件
- removeChar() 对空格、换行等无效字符串进行剔除,使用正则。
- Computer() 对于准确度的计算