Flash中实现物体运动的三种方法

2008-04-02 10:43:43来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


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

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

  这种方法一般在需要按键的游戏中使用。您也能够给某个实体加上这段代码,然后通过单击这个实体达到某种游戏效果。

  1、打开Flash,按快捷键"Ctrl M"打开[ Movie Properties ]面板。根据您的需要配置场景大小和背景颜色。

  2、按快捷键"Ctrl F8"新建一个名为Graphic的Graphic符号(Movie Clip符号也行)。

  3、按快捷键"Ctrl R"导入一张动物图片(我导入图片中动物的脸是面向右的,这样是为了移动效果更真实)。您也能够在move影片的场景里随便画个方块或圆圈。但是这样做效果就不太明显了。

  4、按快捷键"Ctrl F8"新建一个名为move的Movie Clip符号,把Graphic符号拖拽到move影片的第1帧中。双击第1帧,输入函数Stop()。右键单击第1帧,选择Copy Frames命令。然后右键单击第2帧,选择Paste Frames命令。

  5、选择move影片第2帧中的图片,执行[Modify]→[Transform]→[Flip Horizontal]命令把图片水平翻转。注意:影片在第1帧和第2帧中的位置应该是相同的(用快捷键"Ctrl Alt I"打开Instance面板配置图片的X轴Y轴坐标)。

  6、回到主场景,按快捷键"Ctrl L"打开Library后按住鼠标左键把影片move拖拽到场景中。按快捷键"Ctrl I"打开Instance面板,给move影片起名为mc。

  7、单击[Windows]菜单→[Common Libraries]→[Bottons]打开按钮符号库。选择 "(circle)VCR Button Set"中的"gel Left"和"gel Right"按钮,然后把他们拖拽到场景中适当的位置。

  8、右键单击"gel Left"按钮,输入如下代码:

  



  on (release) {

  tellTarget ("_root.mc") {

  //告知电影以被调用,跳转到第2帧

  gotoAndStop (2);

  //跳转到第二帧后,影片就换了个方向

  }

  movex = getProperty("/mc", _x);

  //将影片在场景中的X坐标值附给movex

  vmovex = movex-10;

  //以10个像素为单位变动坐标值,实现物体的移动。

  setProperty ("/mc", _x, movex);

  //重新定义影片的 _x 坐标属性

  }

  9、右键单击"gel Right"按钮,输入如下代码:

  //单击此按钮,跳转到第1帧。实现图片地翻转

  on (release) {

  //以下代码含义参考上面

  tellTarget ("/mc") {

  gotoAndStop (1);

  }

  movex = getProperty("/mc", _x);

  movex = movex 10;

  setProperty ("/mc", _x, movex);

  }

  以上两段代码是用来控制物体左右运动的。至于控制物体垂直方向运动的代码能够结合"方法二"自己编写。最终效果如图1。

  

  另外,您能够通过"onClipEvent (mouseDown){ }"语句实现单击鼠标左键实现物体的单向运动。"{ }"中添加的代码参考"方法一",很简单的,篇幅关系我这里就不多说了。但是"方法一"的设计更有一些不完美。这些我们将在"方法二"中解决。

  方法二:通过敲击方向键实现物体的单位运动

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

  1-5步同"方法一"。

  6、右键单击move影片第1帧中的Graphic图片(是右键单击图片,不是帧),选择Actions命令。输入如下的代码:

  



  onClipEvent (keyDown) {

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

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

  //假如击键为 ← 键就告之影片跳到第2帧执行。实现图片地翻转

  tellTarget ("/mc") {

  gotoAndStop (2);

  }

  }

  if (Key.getCode() == Key.RIGHT) { //假如击键为 → 键就执行下面的语句

  width = getProperty("/mc", _width); //把影片宽度附值给变量width

  movex = getProperty("/mc", _x);

  movex = movex width/10; //以影片宽度的十分之一作为图片移动的单位值

  setProperty ("/mc", _x, movex);

  }

  if (Key.getCode() == Key.UP) { //以下代码含义参考上面

  height = getProperty("/mc", _height);

  movex = getProperty("/mc", _y);

  movex = movex-height/40;

  setProperty ("/mc", _y, movex);

  }

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

  height = getProperty("/mc", _height);

  movex = getProperty("/mc", _y);

  movex = movex height/40;

  setProperty ("/mc", _y, movex);

  }

  }

  7、右键单击第2帧中的move影片,选择Actions命令。输入如下代码:

  



  onClipEvent (keyDown) { //以下代码含义参考上面

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

  width = getProperty("/mc", _width);

  movex = getProperty("/mc", _x);

  movex = movex-width/10;

  setProperty ("/mc", _x, movex);

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 无AS在FLASH中实现三种爆炸效果

下一篇: 用DUPLICATEMOVIE及遮罩模拟图片切割