当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > 用flash制作简单拼图游戏(2)

Flash动画制作
巧用超级解霸在Flash V5.0中插入录像
教你用Flash MX来制作简单的课件界面
Flash MX 2004 ActionScript图文教程(二)
Flash MX 2004 ActionScript图文教程(三)
Flash MX 2004 ActionScript图文教程(四)
Flash MX 2004 ActionScript图文教程(五)
Flash MX 2004 ActionScript图文教程(六)
flash场景之间相互跳转的实现方法
Flash本地加密
FLASH -- 关于变量的问题FLASH -- 关于变量的问题
Flash5 画任意直线教程
Flash MX 视频导入功能详解
制作飞舞的蝴蝶
Flash MX 2004 ActionScript图文教程(七)
Flash MX 2004 ActionScript图文教程(八)
Flash MX 2004 ActionScript图文教程(九)
Flash MX 2004 ActionScript图文教程(十)
Flash教程 飞翔的文字
Flash MX 2004 ActionScript图文教程(十一)
制作Flash网站技巧拾零

Flash动画制作 中的 用flash制作简单拼图游戏(2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 33 ::
收藏到网摘: n/a

第三步:制作用来判断位置的Movie Clip

  在场景中通过菜单File Import或Ctrl+R导入12块已经处理好的小图片,然后按照原图顺序摆放在场景的下半部,选中左上角第一块,选择菜单Insert Convert to Symbol或按F8键,在弹出的Convert to symbol面板中选择Movie Clip(以后简称MC),控制点选择在图片中心(这一点很重要,Flash 5中可能没有这个选项,不过好在Flash 5的默认值就是中心),name为check1(也可以根据自己的习惯取名),其余的图片用同样的方法处理。

  然后选择菜单Window Properties或Ctrl+F3,打开Properties面板,按顺序为这些图片分别填写Instance Name为b1~b12,以便以后在Action中调用.选中所有MC(Ctrl+A),将他们的Alpha属性设置为30%,这样做只是为了使MC看上去模糊,让玩家不能清楚地辨认出是哪部分,以增大游戏难度。

  第四步:制作用来拖拽的MC

  这是比较重要的一步,我们将利用这个MC来实现图块的拖拽以及位置的判断,在这里我们运用了MC中嵌套Button的方法以实现代码重用,这是个很重要的方法,希望大家加以重视.

  选择菜单Insert New Symbol...或Ctrl+F8新建Button(以下简称BT),取名为button_body,确定后进入编辑界面,在Timeline(时间线)中右键单击Hit帧,在快捷菜单中选择New Keyframe建立关键帧 ,选择矩形工具(R),绘制一个矩形,选择选取工具 (V),双击矩形,在Properties面板中将宽、高、X坐标、Y坐标分别设置为80、80、0、0;新建MC 取名button_action,确定后进入MC编辑窗口,Ctrl+L打开Library(库),将刚刚建立的button_body拖进来,同样将X、Y坐标设置为(0,0).

  下面开始为BT(按钮)添加AS,选中刚才拖进来的button_body,通过菜单Window Actions或F9键(Flash 5中为Ctrl+Alt+A)打开Actions面板,利用快捷键Ctrl+Shift+E(Flash 5 中为Ctrl+E,前提是选中了Actions面板)转换到Expert Mode(专家模式,这个模式下编写AS比较灵活,建议使用),填入下面的代码:

on (press) {//按下鼠标
  startDrag(_parent, false, 50, 50, 350, 550);//使图块可以在一定范围内被拖拽
}
on (release) {//释放鼠标
  stopDrag();//停止拖拽
  for (i=1; i<=12; i++) {//判断图块所在位置
    if (_parent._x<=eval("_root.b"+i)._x+40 and _parent._x>=eval("_root.b"+i)._x-40 and _parent._y<=eval("_root.b"+i)._y+40 and _parent._y>=eval("_root.b"+i)._y-40) {//如果被拖拽的图块中心点进入某个判断位置的MC的范围内时
      _parent._x = eval("_root.b"+i)._x;//设置图块的坐标,使其吸附到相应的位置
      _parent._y = eval("_root.b"+i)._y;
    }
  }
}

  这样,拖拽组件button_action就制作好了,在下面的制作中将重复用到这个MC.

  第五步:制作被拖拽的图块

  新建MC,命名为pic1(这个名称无关紧要),确定后进入编辑窗口,在Library中将button_action拖入,设置坐标为(0,0),再从Library中将最初导入的图片pic1.jpg拖入,坐标(0,0),重复这个步骤,直到所有图块都拥有自己相应的MC.
  顺便再做一个按钮,命名为button_back,用来在游戏完成后开始新的游戏.

  第六步:游戏的完成工作

  回到场景中,将TimeLine中已存在的层命名为"位置判断层",点击TimeLine左下角的Insert Layer按钮 ,新建三个层,分别命名为"图块层"、"AS层"和"按钮与提示层".选择"图块层",将Library中的pic1~pic12这几个MC拖入该层。特别注意:这里是MC,而不是图片,我们可以按住Ctrl键同时选择不连续的多个Symbol。按顺序在Properties面板中分别填写Instance Name为p1~p12。

  选择"按钮与提示层",将第二帧设为关键帧(如果你使用的是flash 5请选择第四帧,并顺便用F5将"图块层"添加两帧内容帧),并在Properties面板(flash 5中为Frame面板)中填写Frame Label为"over",选择文字工具(A),在中间位置写入胜利后的提示,如:"Good You Win !!",再拖入button_back到合适位置,并捆绑AS:

on(release){
  prevFrame();//回到前一帧,开始新游戏
  //Flash 5中应该是gotoAndPlay(1)
}

  现在进入冲刺阶段,选择"AS层",选择第一帧,捆绑AS:
stop();//flash 5中请将这句去掉
for (i=1; i<=12; i++) {//游戏初始化
  eval("p"+i)._x = random(240)+80;//随即设置图块的位置于场景上半部的一定区域内
  eval("p"+i)._y = rando