方法二:通过敲击方向键实现物体的单位运动 这种方法在游戏中是经常被使用到的,尤其是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动画后影片一直动个不停了。

评论