现在用Flash开发的游戏越来越多。很多朋友也想学习如何用Flash制作游戏。众所周知,无论在什么游戏中,实现物体的移动都是游戏的前提,不同的游戏有不同的物体移动方式。所以,想学习制作Flash游戏的朋友,今天就跟我学几个在Flash中实现物体运动的方法吧。几种方法如下:
方法一:点击按钮,实现物体的单位移动。
这种方法一般用在需要按键的游戏中。也可以将这段代码添加到一个实体中,然后点击实体就可以达到一定的游戏效果。
1.打开Flash,按快捷键“Ctrl M”打开[电影属性]面板。根据您的要求设置场景大小和背景颜色。
2.按快捷键“Ctrl+F8”创建一个名为Graphic的新图形符号(也可以使用电影剪辑符号)。
3.按快捷键‘Ctrl R’导入一张动物图片(我导入的图片中动物的脸是朝右的,这样移动效果更逼真)。你也可以在电影场景中画一个正方形或圆形。但是,效果并不明显。
4.按快捷键“Ctrl+F8”创建一个名为move的新影片剪辑元件,并将图形元件拖动到move影片的第一帧中。双击第1帧,进入函数Stop()。右键单击帧1并选择复制帧命令。然后,右键单击第2帧并选择“粘贴帧”命令。
5.选中move movie第二帧的图片,执行[修改][变换][水平翻转]命令,将图片水平翻转。注意:第1帧和第2帧中电影的位置应该相同(使用快捷键' Ctrl Alt I '打开实例面板,设置图片的x轴和y轴坐标)。
6.回到主场景,按快捷键“Ctrl+L”打开库,然后按住鼠标左键,拖动电影移动到场景中。按快捷键“Ctrl I”打开“实例”面板,并将电影命名为mc。
7.点击[Windows]菜单[Common Libraries][Bottons]打开按钮符号库。在(圆圈)VCR按钮组中选择“左凝胶”和“右凝胶”按钮,然后将它们拖动到场景中的适当位置。
8.右键单击“gel Left”按钮,并输入以下代码:
复制代码
代码如下:
开启(释放){
TellTarget ('_root.mc') {//告诉要调用的电影,跳转到第2帧。
gotoAndStop(2);//跳到第二帧后,电影改变方向。
}
movex=getProperty('/mc '_ x);//将电影在场景中的X坐标值附加到movex上
movex=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);
}
以上两个代码用于控制物体的左右移动。至于控制对象垂直移动的代码,可以结合‘方法2’自己写。
此外,还可以通过' onClipEvent (mouseDown){} '语句,单击鼠标左键实现对象的单向移动。“{}”中添加的代码指的是‘方法1’,非常简单,这里就不多说长度了。但是‘方法一’的设计还是有一些不完善的地方。我们将在“方法2”中解决这些问题。
方法二:通过敲击方向键实现物体的单位移动。
这种方法在游戏中经常使用,尤其是RPG游戏。学习它是设计RPG和很多其他游戏(比如俄罗斯方块)的基础。在该示例中,使用了键盘的方向键。可以换成其他调做出各种你想要的效果。
步骤1-5与“方法1”相同。
6.右键单击电影第一帧中的图形图片(右键单击图片,而不是帧),然后选择“动作”命令。输入以下代码:
复制代码
代码如下:
OnClipEvent (keyDown) {//按键时执行以下语句
if (Key.getCode()==Key。左){
//如果击键是''告诉电影跳到第二帧执行。实现画面的翻转
tellTarget ('/mc') {
gotoAndStop(2);
}
}
If(key . get code()==key . right){//如果击键是''执行下面的语句
width=getProperty('/mc '_ width);//将胶片宽度附加到可变宽度上
movex=getProperty('/mc '_ x);
movex=movex宽度/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。向下){
height=getProperty('/mc '_ height);
movex=getProperty('/mc '_ y);
movex=movex height/40;
setProperty ('/mc '_y,movex);
}
}
7.右键单击第2帧中的移动影片,然后选择“动作”命令。输入以下代码:
复制代码
代码如下:
OnClipEvent (keyDown) {//下面的代码含义请参考上面的内容
if (Key.getCode()==Key。左){
width=getProperty('/mc '_ width);
movex=getProperty('/mc '_ x);
movex=movex-width/10;
setProperty ('/mc '_x,movex);
}
if (Key.getCode()==Key。右){
//如果击键是''告诉电影跳到第1帧。实现画面的翻转
tellTarget ('/mc') {
gotoAndStop(1);
}
}
//上面还有两个控制图片上下移动的代码。
}
8.回到主场景,按快捷键“Ctrl+L”打开库,然后按住鼠标左键,拖动电影移动到场景中。按快捷键“Ctrl I”打开“实例”面板,并将电影命名为“移动mc”。
这样,胶片可以上下左右移动。我不相信你能通过按键盘上的箭头键来尝试它。最终效果2。但是,我们发现了另一个问题,就是如果实体一直朝着一个方向运动,它就会跑得无影无踪。那我该怎么办?别急,我们给实体加上下面的代码,让它出不来边界:
右键单击电影第一帧中的图形图片,然后单击“movex=movex width/10;”在代码下添加以下代码:
复制代码
代码如下:
If(movex=300-width){ //假设电影的场景宽度为300;
movex=300-宽度;//这样设置是因为场景在左上角(0,0)。
}
右键单击电影第二帧中的图形图片,然后单击“movex=movex-width/10;”添加以下代码:
复制代码
代码如下:
if(movex=0){
movex=0;
}
你可以自己写垂直方向移动的代码,这里就不多说了。
在电影中,你也可以把图片变成动画。如果想自己制作角色动画(如果自己不会画,就把GIF动画取下来用。明白了!o),可以两两一组,前后左右四组,共拍8张,然后在片中再加几帧。(可以自己探索)。这样就不会像电影导入Gif动画后一直在动了。
方法:通过鼠标的拖动和点击实现物体的任意移动。
拖放方法的实现非常简单,但在游戏中应用广泛。如拼图、推箱子、玩老鼠、下棋等游戏,都要用这种方法。
添加名为“mc”的新电影。然后右键单击鼠标,输入以下代码:
复制代码
代码如下:
OnClipEvent (mouseDown) {//当鼠标被按下时执行下面的代码
startDrag(MC);//让电影附着在鼠标上,随鼠标移动。
}
OnClipEvent (mouseUp) {//释放鼠标时执行以下代码
stop drag();//电影离开鼠标。
}
这段代码的作用是点击鼠标,电影就会出现在某个地方。
添加名为“mc”的新电影。然后右键单击鼠标,输入以下代码:
复制代码
代码如下:
onClipEvent (mouseDown) {
x=_root。_ xmouse//将鼠标当前在场景中的X坐标值附加到变量X上。
y=_root。_ ymouse//将鼠标当前在场景中的Y坐标值附加到变量Y上。
setProperty ('/mc '_x,x);
setProperty ('/mc '_y,y);
}