教程|控件
现在用Flash开发的游戏越来越多
方法1 :点击按钮实现物体的单位运动
这种方法一般用于需要按按钮的游戏中。 也可以在实体上附加此代码,然后单击该实体以获得游戏效果。
1、打开Flash,按快捷键' Ctrl M '打开“[ Movie Properties ]”面板。 根据你的要求设定场景大小和背景颜色。
2、按快捷键' Ctrl F8 ',输入名为新图形的图形符号(也可以是移动剪辑符号)。
3、按快捷键' Ctrl R '导入动物照片(我导入照片中动物的脸朝右。 这是为了让效果更加真实。 也可以在move影片场景中自由绘制方形或圆形。 但是,这样做效果不太明显。
4、按快捷键“Ctrl F8”创建新的名为move的Movie Clip符号,然后将图形符号拖动到move影片的第1帧。 双击第1帧,然后输入函数Stop (。 在第1帧上单击鼠标右键,然后选择Copy Frames命令。 然后在第2帧上单击鼠标右键,并选择Paste Frames命令。
5、选择move影片的第2帧图像,然后执行[ modify ][ transform ][ flip horizontal ]命令水平翻转图像。 注:第1帧和第2帧中的影片位置必须相同。 使用快捷键“Ctrl Alt I”打开“实例”面板以设置图像的x轴和y轴坐标。
6、返回主场景,按快捷键' ctrl '打开库,按鼠标左键,将影片move拖动到场景中。 按快捷键" Ctrl I "打开“实例”面板,并将move影片命名为mc。
7、单击[Windows]菜单[Common Libraries][Bottons]打开按钮符号库。 选择“(circle ) VCR Button Set”中的“gel Left”和“gel Right”按钮,然后将其拖动到场景中的适当位置。
8、右键单击" gel Left "按钮,输入以下代码:
on(release ) {
telltarget('_root.MC ) ) /将呼叫通知电影,然后跳至第2帧
谷歌和停止(2; 跳到//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 );
}
上述两个代码用于控制物体的左右移动。 控制物体在垂直方向运动的代码可以结合“方法2”自己写。 最终效果如图1所示。
另外,在“onclipevent(mousedown ) }”语句中点击鼠标左键,可以实现物体的单向移动。 添加到“{ }”的代码请参见“方法1”。 很简单。 篇幅关系在这里不多说。 但是,《方法1》的设计还有不完善的地方。 这些用“方法2”解决。
方法2 :通过敲击方向键实现物体的单位运动
这个方法在游戏中经常使用。 特别是在角色扮演游戏中,我们学到了设计许多其他游戏的基础,包括RPG和俄罗斯方块。 在实例中使用了小键盘的方向键。 那个可以换成其他的键,产生各种各样的效果。
1-5步同步“方法1”。
6 .右键单击move影片的第1帧中的图形图像,然后选择Actions命令。 输入以下代码:
按下onclipevent(keydown )//键后执行以下语句
if(key.getcode(==key.left ) {
//如果击键是键,则警告的电影跳至第2帧执行。 实现照片的翻转
telltarget((/MC ) ) )。
谷歌和停止(2;
}
}
if(key.getcode(==key.right )//如果击键为键,则执行以下语句
idth=getproperty('/MC ',_width ); //为变量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.DOWN) {
height = getProperty("/mc", _height);
movex = getProperty("/mc", _y);
movex = movex+height/40;
setProperty ("/mc", _y, movex);
}
}
7、右键单击第2帧中的move影片,选择Actions命令,Flash游戏教程:控制物体运动三法》(https://www.unjs.com)。输入如下代码:
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的"康庄大道"上一帆风顺。