繁体中文
设为首页
加入收藏
当前位置:网站制作首页 >> Flash教程 >> Flash运动方法与技术剖析

Flash运动方法与技术剖析

2007-11-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:  现在用Flash开发的游戏越来越多了。很多朋友也很想学习用Flash制作游戏的方法。大家知道,不管在什么游戏中,实现物体的运动是游戏的前提,而不同的游戏里物体移动的方式又不尽相同。所以,想学习制作Flash游...

  现在用Flash开发的游戏越来越多了。很多朋友也很想学习用Flash制作游戏的方法。大家知道,不管在什么游戏中,实现物体的运动是游戏的前提,而不同的游戏里物体移动的方式又不尽相同。所以,想学习制作Flash游戏的朋友今天就先随我一起学学在Flash中实现物体运动的几种方法吧。

方法一:通过点击按钮实现物体的单位运动。

  这种方法一般在需要按键的游戏中使用。你也可以给任何元件加上这段代码,通过点击元件达到某种游戏效果。下面我们看看如何实现“方法一”。

  1.打开Flash MX 2004,在“属性”面板设置场景大小为300px x 185px,背景颜色为白色,帧频为12fps。(具体情况具体设置)

  2.按快捷键Ctrl+F8打开“创建新元件”面板,新建一个名为Graphic的“图形”元件(或者“影片剪辑”)。如图1所示。

图1

  3.按快捷键Ctrl+R打开“导入”面板导入一张图片。当然我们也可以在Graphic元件的场景里随便画个方块或圆圈。不过这样做效果就不太明显了。

  4.按快捷键Ctrl+F8新建一个名为move的“影片剪辑”元件,把Graphic元件拖拽到move影片的第1帧中。点选第1帧,按F9键打开“动作”面板,输入代码“stop();”。继续点选第1帧,按F6键复制第1帧,这样新建的第2帧内容和第1帧完全。

  5.点选move元件第2帧中的图片,执行[修改] 菜单→[变形]→[水平翻转]命令将图片水平翻转。

  6.回到主场景,按快捷键Ctrl + L打开“库”面板后按住鼠标左键把“库”中的move元件拖拽到场景中。在“属性”面板为move影片元件起实体名为mc。如图2所示。

图2

  7.单击[窗口]菜单→[其它面板]→[公用库]→[按钮]命令打开“按钮”元件库。选择 “(circle)VCR Button Set”中的“gel Left”和“gel Right”按钮,如图3所示,然后把它们拖拽到场景中适当的位置。

图3     图4

  8.点选场景中的“gel Left”按钮,按F9键打开“动作”面板,输入如下代码:

// 点击按钮,元件向左运动

on (release) {

// 跳转到mc元件的第2帧停止,让图片转换方向

  mc.gotoAndStop(2);

// 以10个像素为单位横向移动元件

  movex = mc._x;

  movex -= 20;

// 为元件mc的x坐标从新赋值

  mc._x = movex;

// 让元件始终在场景里运动

// 元件的原点为左上角的点,即(0,0)点,见图4所示

  if(mc._x=300){

   mc._x = -mc._width;

  }

}

  以上两段代码是用来控制物体左右运动的。至于控制物体垂直方向运动的代码可以结合“方法二”自行编写。另外,可以通过“onClipEvent (mouseDown){ }”语句实现单击鼠标左键实现物体的单向运动。“{ }”中添加的代码同“方法一”中的代码,很简单的,篇幅关系柳叶这里就不多说了。但是“方法一”的设计还有一些不完美。这些我们将在“方法二”中解决。

效果演示:

方法二:通过敲击方向键实现物体的定量运动。

  这种方法在游戏中是经常被使用到的,尤其是RPG游戏,学会它是设计RPG和其它很多游戏(如俄罗斯方块)的基础。实例中用的是小键盘的方向键,也可以把它改成其它键,做出各种你想要的效果。

  1-5步同“方法一”。

  6.点选move元件场景第1帧中的Graphic元件,按F9,在弹出的“动作”面板中输入如下的代码:

// 当键被按下后执行下面的语句

onClipEvent (keyDown) {

// 敲击小键盘的‘←’键,跳到元件第2帧,实现图片翻转

if (Key.getCode() == Key.LEFT) {

_root.mc.gotoAndStop(2);

}

// 如果敲击小键盘的‘→’键就执行代码

  if (Key.getCode() == Key.RIGHT) {

// 将元件宽度赋值给变量width

// 因为元件不在根目录下,所以要加“_root”

   width = _root.mc._width;

   movex = _root.mc._x;

// 以元件宽度的十分之一为单位移动元件

   movex += width/10;

// 不让元件运动出场景,场景宽度为300

  if(movex>=300-width){

   movex = 300-width;

  }

_root.mc._x = movex;

}

// 以下代码实现元件上下移动

if (Key.getCode() == Key.UP) {

height = _root.mc._height;

movey = _root.mc._y;

movey -= height/10;

  if(movey=185-height){

movey = 185-height;

}else{

_root.mc._y = movey;

   }

 }

}

  7.点选第2帧场景中的move元件,按F9打开“动作”面板,输入如下代码:

onClipEvent (keyDown) {

  if (Key.getCode() == Key.LEFT) {

width = _root.mc._width;

movex = _root.mc._x;

movex -= width/10;

  if (movex<=0) {

  movex = 0;

}

  _root.mc._x = movex;

  }

  if (Key.getCode() == Key.RIGHT) {

   _root.mc.gotoAndStop (1);

 }

// 以下是元件上下运动代码,同上

if (Key.getCode() == Key.UP) {

height = _root.mc._height;

movey = _root.mc._y;

movey -= height/10;

    if(movey=185-height){

movey = 185-height;

}else{

_root.mc._y = movey;

    }

}

}

  8.回到“场景1”,按快捷键Ctrl+L打开”库”面板后按住鼠标左键把影片move拖拽到场景中。在“属性”面板为move影片元件起实体名为mc。如图2所示。这样,影片就可以做上下左右的运动了。可以把运动的动画放入元件使用。可以制作8张图片,两个一组,前后左右方位的共4组,然后在影片中再增加几帧就OK了(再就作为课后作业留个大家了)。这样就可以解决导入的Gif动画动个不停的问题了。

效果演示:

方法三:通过鼠标拖拽实现物体的任意运动。

  拖拽方法的实现是很简单的,但它在游戏中的运用却是很广泛的。如拼图,推箱子,打老鼠,棋类等游戏都要用到这种方法。

  新增一个实例名为“mc”元件,点选该元件,按F9键,输入代码:

// 当鼠标按下时执行代码

onClipEvent (mouseDown) {

// 让影片吸附在鼠标并跟随鼠标一起运动

startDrag (mc);

// 当松开鼠标时执行下面代码

onClipEvent (mouseUp) {

// 影片脱离鼠标

stopDrag ();

}

  这段代码的功能是点击一下鼠标,影片就出现在鼠标点击的地方。

效果演示:

方法四:通过鼠标点击实现物体的任意运动。

  新增一个实例名为“mc”的元件,点选该元件,按F9键,输入代码:

onClipEvent (mouseDown) {

// 把鼠标当前在场景中的X(Y)坐标值赋值给变量x(y)

x = _root._xmouse;

y = _root._ymouse;

// 把变量x(y)的值赋给元件的x(y)坐标

_root.mc._x = x;

_root.mc._y = y;

}

效果演示:

  好了,说得差不多了。只要大家掌握了以上几种实体的运动方法,再结合一些其它Flash制作方法和编程技巧,就一定能设计出很好的作品来的。  该效果源件下载(35.9K)

责任编辑:admin
相关文章