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

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

  上一次,我们已经学习了最基本的敌人跟踪方法,这次,我们来限制一下敌人。

  二、指定范围内的跟踪

  首先看看这个例子:

  现在的敌人周围有了一个范围,那么,只有当你进入这个范围的时候,敌人才会来追赶你。

  这就是有指定范围的跟踪敌人,它的原理是:

如果(玩家进入敌人范围)
{  如果(玩家x坐标 <> 敌人x坐标){
      调整敌人x坐标,趋近玩家x坐标
  }
  如果(玩家y坐标 <> 敌人y坐标){
      调整敌人y坐标,趋近玩家y坐标
  }
}

  这个应该不难理解吧,我们可以理解为:敌人有一个视力范围,只要玩家进入这个范围,敌人就会进行追踪。这个的解决方法也不复杂,普通的算法是判断玩家和敌人的位置,如果两者之间距离达到或者小于一定的值,那么敌人就开始追踪。在 Flash 里面,我们更可以用简单的碰撞来实现,这样代码就更少了。

  我们可以在 enemy 里面放置一个圆形的范围,给一个实例名叫做 range,那么,enemy.range 就是敌人的视力范围了。

  这样,我们通过判断玩家是否和敌人的视力范围碰撞就可以实现这个效果了,下面是完整的第一帧源代码:

var enemySpeed:Number = 1;
var dx, dy:Number;
/* functions */
tracker = function () {
 player._x = _xmouse-10;
 player._y = _ymouse-10;
 dx = player._x-enemy._x;
 dy = player._y-enemy._y;
 if (enemy.range.hitTest(player._x, player._y, true)) {
  if (Math.abs(dx)>=enemySpeed) {
   enemy._x += ((dx>=0) ? enemySpeed : -enemySpeed);
  }
  if (Math.abs(dy)>=enemySpeed) {
   enemy._y += ((dy>=0) ? enemySpeed : -enemySpeed);
  }
 }
 updateAfterEvent();
};
/* run it*/
setInterval(tracker, 10);

  针对 AS 新手:if (enemy.range.hitTest(player._x, player._y, true)),就是用来判断玩家是否和敌人视力范围碰撞的语句,很简单是吧?

  这一次的介绍就到这里了?下一次我们要给目前的这个敌人再做一些限制,这样,我们就可以结束简单跟踪的学习了。

  这次的源代码请在这里下载附件(rar压缩文件,6K)。

时间: 2024-11-03 08:12:15

Flash游戏开发系列一:游戏中的敌人(2)的相关文章

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

第六篇:Flash游戏开发系列一:游戏中的敌人. 五.跟踪导弹(续完) 上次我们已经知道怎样让导弹的旋转看起来像那么回事,紧接着就是让导弹运动起来了. 导弹的一些属性,我们需要好好定义一下,这是完整的初始化函数: init = function () {enemy._x = 40;enemy._y = 350;enemy._rotation = 0;enemy_obj.MAXAngle = 6;enemy_obj.MAXSpeed = 4;enemy_obj.speedX = enemy_obj

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

第五篇:Flash游戏开发系列一:游戏中的敌人. 五.跟踪导弹(续) 前面讲过了如何让导弹朝向玩家,但是真正在应用的时候,不可能这么生硬的体现.大家可能也发现了,导弹的方向一直指向玩家,其实很不真实,那么如何才能更加真实一些呢.常用的方法有几种,我们这里介绍其中一种,其它的大家可能要去参考游戏开发图书了. 在这里,我们使用的方法是,导弹有一个最大转向角度,也就是说,如果转向达到这个角度,就不能再转了,这样,看起来就会真实一些,导弹也就不回一下子面对玩家,看看下面这个例子,我把导弹的最大转向角度设

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

第四篇:Flash游戏开发系列一:游戏中的敌人. 五.跟踪导弹 看看这个例子,在动画屏幕上按下鼠标,导弹就会跟踪玩家,直到击中玩家: 对于新手来说,一下子就实现它可能不太容易,我们来一点一点的做. (1)导弹的方向 我们先来实现导弹朝向玩家的功能,就像下面这个:(按下鼠标观看) 首先,我们注意到,敌人的导弹是要朝向玩家的,这和前面不同.前面的敌人是一个圆头圆脑的家伙,不用分辨它的方向.我们就先来看一下如何让敌人有方向感. 首先给新手讲解一下基本知识:用鼠标来触发动画. 我们先设定一个变量,布尔类

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

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

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

第二篇:Flash游戏开发系列一:游戏中的敌人. 三.指定范围内的跟踪深化 再看看这个例子: 现在的敌人的视线范围比较真实了,它一直在四周查看,只有当你进入它的视觉范围的时候,敌人才会来追赶你. 这就是有指定范围的跟踪敌人,它的原理是和前面一样的: 如果(玩家进入敌人范围){ 如果(玩家x坐标 <> 敌人x坐标){调整敌人x坐标,趋近玩家x坐标}如果(玩家y坐标 <> 敌人y坐标){调整敌人y坐标,趋近玩家y坐标}} 我们可以在 enemy 里面放置一个扇形的范围,给一个实例名叫做

安卓开发-安卓手机游戏开发用什么游戏引擎

问题描述 安卓手机游戏开发用什么游戏引擎 想学安卓游戏开发,想问问现在安卓开发用什么游戏引擎,大型的预习也是java代码吗??还有网游呢???untiy3d只能是c#吗???cocos2d呢??真心求知道谢谢....没有开发过游戏,请调教 我现在在java web公司上班 没怎么解除新鲜的实物 请大家帮忙 想做一个小型的角色扮演类网游,学习一下.看点什么资料好呢 解决方案 cocos2d是最流行的 解决方案二: 开发Android游戏的引擎有很多,比如 cocos2d.AndEngine.Uni

android-Android游戏开发, Android小游戏

问题描述 Android游戏开发, Android小游戏 有没有android弹珠游戏的源代码,eclipse环境下的android源代码 解决方案 http://download.csdn.net/detail/zhoujiao_2010/2426306 这里就有,自己下吧

手机游戏开发成为安卓应用中的重中之重

目前,对于现在的中国大陆智能手机操作系统市场来说,占大部分份额的还是安卓系统.塞班系统还有ios系统三大手机系统.当然还有一部分智能手机是使用的别的系统的,例如黑莓公司使用的就是其公司本身研发的系统黑莓系统.但不得不承认,在这么多系统中安卓系统了是风头最劲的一个.不管是安卓系统的制造商还是软件开发者都具有永不松懈的创新创新精神,而且安卓系统对于"未来适用于各类链接性设备"的定位也使更多的开发商加入其中!不难预测,安卓未来的前景非常广阔. 随着HTC.MOTO.联想,中兴.华为.三星等手

【ANDROID游戏开发之八】游戏中添加音频-详解MEDIAPLAYER与SOUNDPOO!并讲解两者的区别和游戏中的用途!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/312.html  ----------------------- 『很多童鞋说我的代码运行后,点击home或者back后会程序异常,如果你也这样遇到过,那么你肯定没有仔细读完Himi的博文,第十九篇Himi专门写了关于这些错误的原因和解决方法,这里我在博客都补充说明下,省的童鞋们总疑惑这一块:请点击下面联系进入阅读