滑动拼图-AS3 游戏编程大学 1 滑动拼图———Sliding Puzzle 游戏玩法: 这是一个拼图游戏,游戏的开始会在一个完整的图案上留下一个空缺的格子,玩家通过移动这个空缺周围的拼图来最终完成图案。 游戏主要思路: 一、先是将一幅外部的图像导入,然后进行将其进行切分。所谓的切分就是将其代表不同块的区域的复制给一个一个的 Sprite。 二、将块打乱顺序 三、然后为每一个 Sprite 加侦听器响应玩家点击。 四、实时判断是否游戏结束 准备工作: 元件: 只需准备一张外部图像文件名为“slidingimage.jpg” 舞台设置: 一共有三帧。 第一帧:有一个开始按钮,实例名为 startButton,帧代码为 stop(); startButton.addEventListener(MouseEvent.CLICK,clickStart); function clickStart(event:MouseEvent) { gotoAndStop("play"); } 很容易理解,点击跳到第二帧,即游戏开始帧。 第二帧:帧代码为 startSlidingPuzzle();即调用游戏主函数开始游戏。 第三帧:有一个重玩按钮,实例名为 playAgainButton,帧代码为 playAgainButton.addEventListener(MouseEvent.CLICK,clickPlayAgain); function clickPlayAgain(event:MouseEvent) { gotoAndStop("play"); } 点击重新开始游戏 类文件的编写 此游戏只有一个主类为 SlidingPuzzle 继承自 MovieClip package { //导入需要的包 import flash.display.*; import flash.events.*; import flash.net.URLRequest; import flash.geom.*;//这个包有我们后面用到的 Point 类 import flash.utils.Timer; public class SlidingPuzzle extends MovieClip { static const pieceSpace:Number = 2;//定义了块之间的间距 static const horizOffset:Number = 50;//定义了水平的偏移 static const vertOffset:Number = 50;//定义了垂直的偏移 // 定义了水平方向和垂直方向的块数量 static const numPiecesHoriz:int = 4; 滑动拼图-AS3 游戏编程大学 2 static const numPiecesVert:int = 3; // 这个是游戏乱序过程模拟的步数 static const numShuffle:int = 200; // 块滑动动画的步数和时间 static const slideSteps:int = 10; static const slideTime:int = 250; // 块的尺寸,由于要根据图片的大小定,所以未赋值 private var pieceWidth:Number; private var pieceHeight:Number; // 一个...