FLASH:拼图游戏制作详解

互联网 | 编辑: 2003-05-29 00:00:00 一键看全文

Flash MX使拼图变得更加简单!

制作步骤二

二、在主场景第1帧设置AS如下:

//初始化变量

 var xx = 6;

var yy = 5;

var startX = 100;

var startY = 100;

 //获取被分割图片大小和

var xy = xx*yy;

 attachMovie("Piece", "P", 222);//捆绑库中输出名为PIECE的MC

var wi = P.Image._width;

 var hi = P.Image._height;

P.removeMovieClip();

bg_mc.swapDepths(xy+2);

myname.swapDepths(xy+3);

 _root.setMask(bg_mc);//这是增加的一个MC,用来遮照整个场景。

 //获取分量

var xs = wi/(xx-1);

 var ys = hi/(yy-1);

 //定义拖动事件

 piece_event = function(){//定义一个类  

this.onPress = function(){

  this.swapDepths(xy+1);

  startDrag(this);

 }

 this.onRelease = function(){  

 if(this._parent._xmouse>startX && this._parent._xmouse startY && this._parent._ymouse  

  this._x = Math.round((this._x-startX)/xs)*xs+startX;    this._y = Math.round((this._y-startY)/ys)*ys+startY;

  }  

 stopDrag();

  }

//注册该类给piece对象

piece_event.prototype = new MovieClip();//将类继承MovieClip的属性和方法 Object.registerClass("Piece", piece_event);//注册类给输出标识为PIECE的MC 这样使每一个PIECE的MC都具有piece_event类的属性和方法

//复制图片,设置每个被分割图片位置

for(i=0; i  var x = (i%xx)*xs;  

var y = Math.floor(i/xx)*ys;

 var p = attachMovie("Piece", "Piece"+i, i+1, {_x:startX+x, _y:startY+y});

 p.Image._x-=x;

 p.Image._y-=y;  p.Pzzle._xscale = xs;

 p.Pzzle._yscale = ys;

 }

三、总结:

1、利用动态复制可以实现动态的图片切割,对于制作拼图游戏是一种思路,这样可以减少对图片的前期处理。

2、但对于大图片的复制会影响游戏的执行效率,建议运用在小的图片上。

3、关于类的运用在游戏中是很常见的,这样可以优化代码,提高工作效率。

(作者:windows 2002  闪吧)

提示:试试键盘 “← →” 可以实现快速翻页 

总共 2 页< 上一页12
一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑