Flash游戏教程:控制物体运动三法

教程|控制

现在用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);
}
if (Key.getCode() == Key.RIGHT) {
//如果击键为 → 键就告之影片跳到第1帧执行。实现图片地翻转
tellTarget ("/mc") {
gotoAndStop (1);
}
}
//还有两段控制图片上下运动的代码同上
}

8、回到主场景,按快捷键"Ctrl + L"打开Library后按住鼠标左键把影片move拖拽到场景中。按快捷键"Ctrl + I"打开Instance面板,给影片move起名为mc。 这样,影片就可以做上下左右的运动了。不相信你可以按小键盘上的方向键试试看。最终效果如图2。不过大家又发现一个问题,就是实体一直往一个方向移动的话,然后就会跑的无影无踪。那怎么办呢?别急,让我们再给实体加上下面一段代码,让实体出不了边界:

右键单击move影片第1帧中的Graphic图片,然后在"movex = movex+width/10;"代码下添加如下代码:

if(movex> =300-width){ //假设影片的场景宽度为300;
movex=300-width; //这样设置是因为场景是以左上角的点为(0,0)点的
}
右键单击move影片第2帧中的Graphic图片,然后在"movex = movex-width/10;"添加如下代码:
if(movex <=0){
movex=0;
}

在垂直方向运动的代码你可以自己写了吧,我这里就不说什么了。

影片中,你也可以把图片换成动画。如果你想自己做人物动画(如果你自己不会画的话,就把GIF动画拆下来用。明白嘛!),你可以制作8张图片,两个一组,前后左右方位的共四组,然后在影片中再增加几帧就OK了(大家可以自己探索一下)。这样就不会象导入Gif动画后影片一直动个不停了。

方法三、通过鼠标拖拽和点击实现物体的任意运动

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

新增一个名为"mc"的影片。然后右键单击鼠标输入下面的代码即可:
onClipEvent (mouseDown) { //当鼠标按下时执行下面代码
startDrag (mc); //让影片吸附在鼠标并跟随鼠标一起运动
}
onClipEvent (mouseUp) { //当松开鼠标时执行下面代码
stopDrag (); //影片脱离鼠标
}

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

新增一个名为"mc"的影片。然后右键单击鼠标输入下面的代码即可:

onClipEvent (mouseDown) {
x = _root._xmouse; //把鼠标当前在场景中的X坐标值附值给变量x
y = _root._ymouse; //把鼠标当前在场景中的Y坐标值附值给变量y
setProperty ("/mc", _x, x);
setProperty ("/mc", _y, y);
}

好了,说得差不多了。只要大家掌握了以上几种实体的运动方法,再结合一些其它的Flash制作和编程手段,就一定能开发出属于自己的Flash游戏。在这里,我祝大家在Flash的"康庄大道"上一帆风顺。

时间: 2024-10-13 17:15:42

Flash游戏教程:控制物体运动三法的相关文章

Flash AS游戏教程:人物及控制

教程|控制 演示效果: 点击这里下载源文件 在第一次我们做的地图基础上,我们来做一个人物,然后让这个人物在我们的地图上惬意的行走.当然具体这个人物怎么做,形象怎么设计,我们都不讲,因为大愚的美工实在有点--,咳,不说了,我们从网上找来一个现成的人物(注:该素材由巴斯特·龙友情提供),如图1: 大家仔细看好啦,这个人物一共有16个剪辑,上面一排是静止的图象,代表人物在8个方位的静止状态,什么?哪8个方位?大愚晕,就是(上.下.左.右.左上.右上.左下.右下)啦.下面一排则是相应方向行走的动态剪辑.

Flash AS游戏教程:人物的控制

教程|控制 效果如下:(用上下左右控制走动,碰到墙会停下来,按住CTRL会跑.) 点击这里下载源文件 AS如下: var walkspeed = 1.5;//走的速度var runspeed = 3;//跑的速度var numOfMask = 5;//Mask的数量block_mc._visible = false;//挡着角色运动的MC看不见for (i=numOfMask; i>0; i--) {eval("mask" add i)._visible = false;//让所

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

现在用Flash开发的游戏是越来越多了.很多朋友也很想学习用Flash制作游戏的方法.大家知道,不管在什么游戏中,实现物体的运动是游戏的前提,而不同的游戏里物体移动的方式又不尽相同.所以,想学习制作Flash游戏的朋友今天就先随我一起学学在Flash中实现物体运动的几种方法吧.几种方法如下: 方法一:通过单击按钮实现物体的单位运动 这种方法一般在需要按键的游戏中使用.你也可以给某个实体加上这段代码,然后通过单击这个实体达到某种游戏效果. 1.打开Flash,按快捷键"Ctrl + M"

Flash原创教程:Flash按钮是这么控制声音的

按钮|教程|控制|原创 作者/残 刚有网友问我怎么在flash中控制声音的开始和停止.开始我想拿按钮stop再play不就OK了?再一试才想起来声音不能这么控制.要想知道怎么做,请接着往下看.(文章末尾有源文件下载) 首先准备你的材料:声音文件(不要太大哦),随便做一个动画再从库里面拖出来个按钮. 开始咯.先把演员定位.我是这么放的,图层一放动画,取个名字就叫动画吧.图层二放按钮.图层三放声音.(其实位置随便吧).把演员们都放上去吧.见下图: 在库里面右键点击你的声音,选择"链接..."

从头开始学习FLASH 3D教程

教程 效果演示:(用鼠标直接拖拽下面的物体) 点击这里下载源文件 大家都知道三维的点都有3个坐标,但FLASH只是有二维的坐标,所以要在FLASH里实现"三维"的效果,就需要对点的坐标进行转化,简单的说,就是怎么把三维坐标转换成二维坐标.(其实,这并不是真正的三维,而是一种视觉欺骗,看上去像三维的就这么回事.所以上面三维带引号.) 一.三维坐标系转化成二维坐标系 (1).坐标的转换 flash中场景左上角为(0,0),而在数学中是场景中心为(0,0),怎样把它转成数学中的坐标系呢? 1

FLASH创意设计教程:试读-“都市恋爱”

教程|设计 1.3 基础效果制作 1.3.1帧动画 1. 都市恋爱 在充满诗意的黄昏,都市的大厦闪烁着灯光,逐渐的灯光隐灭,留下了"LOVE"恋爱的音符--这个创意来源于网络,看到过一个大学生宿舍灯光求爱的图片,所以想到了这个效果. 效果展示 其中一帧画面如图1.3.1所示(完整效果参见光盘中的"\第一部分\第三章\都市恋爱.swf") 点击这里下载源文件 效果讲解 在Flash中,朋友们可以通过改变连续排列的帧内容来实现动画.创建动画序列有两种方法.逐帧动画和渐变

Flash游戏开发系列一:游戏中的敌人(4)

第三篇:Flash游戏开发系列一:游戏中的敌人. 四(插).半随机移动的敌人 看看这个例子: 我们可以看到,一个敌人按照一定的规律从上面到下面移动.主要的规律是自上而下,但是移动的范围是随机的.这种方法在早期的游戏里面经常使用,包括一些大型的游戏.其实这是一种非常简单的运动方式,但是如果使用得当,也很有威胁. 我们大概瞧一下原理: 敌人每次向一个方向以随机的速度走八步,然后再改变方向,再走八步.在这个例子里面,为了简单说明,敌人走到画面底部以后,我们会让它重新回到原来的位置,重新再走. 我们创建

Flash游戏开发系列一:游戏中的敌人1

对于目前的 Flash 来说,开发一些像模像样的游戏并不是什么奇怪的事情了.我这里所涉及到的内容和开发游戏有关,但是都是一些比较基本的知识.如果您是游戏开发方面的高手,那么完全可以忽略我这里所描述的内容.我的计划是要做一系列的教程,这是其中一个系列. 游戏是一个交互作品,简单说,就是通过用户的行为,会对这个作品的进程产生一定的影响.说到游戏,总要提到难度,游戏的难度在于:当你想要达到某种目的的时候,你会发现它的实现多少有些困难,困难越难克服,难度也就越大.不同类型的游戏有不同的难度,以及不同的实

flash游戏杀狗大赛制作

在internet无比火爆的今天,网络技术日新月异,而macromedia的flash无疑是其中的佼佼者,flash技术以无与伦比的速度被广大用户所接受,并越来越展现出其强大的生命力. 它提供给设计者和开发者轻松创建新一代网络应用的编辑新经验.从可口可乐爱华电子,越来越多的用户选择flash制作高压缩性的,富含声音与动画的交互式网站.创意,互动,趣味,实用,一切结合得是如此完美.... 而要想学好flash,其形变动画,运动动画,蒙板动画等并不难,最大难点无疑是在macromedia flash