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;//让所有MASK看不见
}
onEnterFrame = function () {
Key.isDown(Key.CONTROL) ? speed=runspeed : speed=walkspeed;//如果按下CTRL,就跑
if (Key.isDown(Key.LEFT)) {//如果按下左
Key.isDown(Key.UP) || Key.isDown(Key.DOWN) ? (character_mc._x -= 0.707*speed, xy=false) : (character_mc._x -= speed, xy=true);//同时又按下了上或者下,那就不要移动这么大.也就是说斜走的时候,角色在X轴或者Y轴上移动要小一点.下同
}
if (Key.isDown(Key.RIGHT)) {
Key.isDown(Key.UP) || Key.isDown(Key.DOWN) ? (character_mc._x += 0.707*speed, xy=false) : (character_mc._x += speed, xy=true);
}
if (Key.isDown(Key.UP)) {
Key.isDown(Key.LEFT) || Key.isDown(Key.RIGHT) ? (character_mc._y -= 0.707*speed, xy=false) : (character_mc._y -= speed, xy=true);
}
if (Key.isDown(Key.DOWN)) {
Key.isDown(Key.LEFT) || Key.isDown(Key.RIGHT) ? (character_mc._y += 0.707*speed, xy=false) : (character_mc._y += speed, xy=true);
}
for (i=numOfMask; i>0; i--) {
if (eval("mask" add i).hitTest(character_mc) && eval("mask" add i)._y>character_mc._y) {//如果角色和MASK相碰,而且MASK在角色下边的话,也就是说如果MASK应该挡着角色的话
bg_mc.setMask(eval("mask" add i));//那就用这个MASK挡着角色
break;//后边的就不用想了,跳出IF
}
}
shedowLx = character_mc._x-character_mc.shedow_mc._width/2;//得到角色影子最左边的X座标,后边做HITTEST时要用
shedowRx = character_mc._x+character_mc.shedow_mc._width/2;//影子最右边的X座标
shedowUy = character_mc._y-character_mc.shedow_mc._height/2;//影子最上边的Y座标
shedowDy = character_mc._y+character_mc.shedow_mc._height/2;//影子最下边的Y座标
shedowx = character_mc._x;//影子中心X座标
shedowy = character_mc._y;//影子中心Y座标
xy ? a=1 : a=0.8;//如果刚才是斜着走的话,反弹的速度A就是0.8,否则是1
block_mc.hitTest(shedowLx, shedowy, true) ? character_mc._x += a*speed : a=a;//如果影子的左边碰到不能走的地方,就向右弹出一个距离,距离的大小由上一句控制,下同
block_mc.hitTest(shedowRx, shedowy, true) ? character_mc._x -= a*speed : a=a;
block_mc.hitTest(shedowx, shedowUy, true) ? character_mc._y += a*speed : a=a;
block_mc.hitTest(shedowx, shedowDy, true) ? character_mc._y -= a*speed : a=a;
};

时间: 2025-01-21 09:08:07

Flash AS游戏教程:人物的控制的相关文章

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

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

FLASH打字游戏教程:字母练习

功能:26个字母练习,含大小写.背景音乐可切换,背景图片也可以切换.捡到一个苹果加20分,捡到一个西瓜,加100分. 里面主要代码教程:(把代码发在这里,希望大家能提建议.代码能否更精简...)第一帧的代码: //定义nub,为下面的球体复制做准备... var num:Number = 0; //定义xian,此处设置的目的为当球下落到一定程序的时候(即超出屏幕的范围的时候),运行后面的程序,此方法的目的是为了 //让系统不会因为复制太多球体而变得很慢.此处的值是场景的y值,可以随便设...

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

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

Flash动画基础教程①入门篇

flash动画|基础教程 這個教程是本人的一些經驗之談,為了初學者的入門教程,未經本人許可請勿轉載!謝謝 Flash动画基础教程--入门篇①首先我们来说说什么是Flash? Flash是Macromedia公司出品的软件,对于Flash是什么很多的描述,大致是"交互性矢量多媒体制作软件"的意思!首先,它是一种多媒体制作软件,Flash的产品往往都是一些"有声有色"给人视觉冲击的动画.其次,Flash是以矢量图为基础的,矢量图最大的特点就是它能无限的缩放,不会因为图像

flash入门教程:Flash Sound实例教程

flash入门教程:Flash Sound实例教程 第1步 选择文件> "导入导入一个声音文件.找到声音文件并点击打开.的声音文件将被保存在图书馆. 第2步 单击第一帧的"图层1 "的时间表.选择窗口" >小组"声从顶部的菜单中. 第3步 在弹出窗口(声音)选择你的声音进口的声场.选择流中的同步字段.关闭弹出窗口. 第4步 到50帧的时间.请右击并选择插入帧. 第5步 选择控制" >测试影片从顶部的菜单中测试您的Flash影片.

flash教程:flash Shape实例教程

flash教程:flash Shape实例教程 第1步 选择文字工具在左边的工具箱.选择文本"大小" 48从顶部的菜单中,使文大.选择文本"风格"大胆以使案文厚. 第2步 请在工作区和写"你好" . 第3步 右击你刚才的文字写道小组,并选择"对齐从弹出式菜单. 第4步 在对齐框中选择"为舞台"按钮.然后点击"对齐水平中心"按钮和"垂直中心对齐"按钮.关闭对齐方块. 第5步 选择

Flash移植游戏《重力怪鸭》试玩攻略

<重力怪鸭>试玩攻略以重力(Gravity)为主题的游戏不算少,而且通常都考验着玩家的抗眩晕能力,例如<重力眩晕>.这款<重力怪鸭>(GravityDuck)看名字就知道接下来玩家要面对的是什么,虽然它的画面是2D的,但是制造眩晕的能力并不比传统的3D差,再加上兼顾解谜要素以及开发商大恐龙一贯的难度至上原则,玩着玩着就让你晕了. 游戏名称:<重力怪鸭>价格:6元发布日期:2013年2月28日大小:6.0 MB在这款Flash移植游戏中,简洁的菜单设计.像素级

opengl 教程(14) 摄像机控制(1)

原帖地址:http://ogldev.atspace.co.uk/www/tutorial14/tutorial14.html       前面一篇教程中,我们把摄像机放在三维空间的固定位置,本章我们尝试控制摄像机,在三维空间任意方向移动它.我们用键盘来控制摄像机的位置,用鼠标来改变摄像机lookat的方向,这个有点类似第一人称射击游戏中的摄像机控制.本章先来学习一下用键盘控制摄像机位置,下章来学习鼠标改变摄像机方位.       注意:我们用键盘移动的时候,仅仅是改变摄像机的位置,并没有改变l

代码-限制游戏的启动或者控制玩游戏的时间

问题描述 限制游戏的启动或者控制玩游戏的时间 周围朋友大多陷入游戏中不能自拔,所以个人觉得应该做点什么,想来想去还是他们制止力的问题.所以我想写点简单的软件来限制玩游戏的时间,各路大神跪求给点意见,看看应该怎么写代码. 解决方案 软件无解,真的患上此病的人,不会去网吧玩么?你能把你的程序都装在网吧上么?再说国家就靠游戏收税,没有污染,你能对抗国家么?