- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
滑动拼图———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 .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;
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;
// 一个用来存块对象引用的数组
private var puzzleObjects:Array;
// 有关块移动的变量
private var blankPoint:Point;//空白块的坐标
private var slidingPiece:Object;//当前移动的块对象
private var slideDirection:Point;//块移动的点
private var slideAnimation:Timer;//移动动画的计时器
//定义游戏开始函数
public function
文档评论(0)