站长中国
设为首页 | 站长论坛

站长论坛 站长下载
您所在的位置: 站长中国 > 站长学院 > 网络媒体 > Flash > 正文

游戏开发系列一:游戏中的敌人(4)
  2008年02月18日16:55:32  评论(0条) 字体:[ ]
相关热点:
我们大概瞧一下原理:

  敌人每次向一个方向以随机的速度走八步,然后再改变方向,再走八步。在这个例子里面,为了简单说明,敌人走到画面底部以后,我们会让它重新回到原来的位置,重新再走。

  我们创建一个对象 enemy_obj 来保存敌人的运动状态,当然你也可以把这个对象的属性直接赋予给 enemy 这个 MovieClip。我们这么做应该会清晰一些。 enemy_obj 有一些属性,我来介绍一下:

speedX : x 方向速度
speedY : y 方向速度
dirX : 方向, -1 or +1
cur : 当前步数

  我们写一个初始化函数 init() 来初始化这些数据:

init = function () {
 enemy_obj.sppedX = enemy_obj.sppedY=0;
 enemy_obj.dirX = -1;
 enemy_obj.cur = 0;
 enemy._x = 150;
 enemy._y = 50;
};

  初始化完成以后,就是敌人运动的函数了

  我们初始定义的方向是(-1),也就是向 x 的负方向。然后开始不断的增加步数,enemy_obj.cur = (++enemy_obj.cur)%8 可以让步数维持在 8 步以内,不明白的闪客可以跟踪一下数据看看,其实是很简单的,就是不断增加步数,并且针对 8 取模。取模的用法大家可以去查一下帮助看看,这里不多说了。

  一旦达到某一步数,这里是第一步,那么就开始改变方向,通过 enemy_obj.dirX = (enemy_obj.dirX == 1) ? -1 : 1 来实现。接下来就开始随机生成速度,我们这里规定敌人向下走,所以 y 方向是固定的,x 方向随 enemy_obj 的方向来改变,所以我们在随机生成 x 的速度以后,要再乘以 enemy_obj.dirX,如果您是新手,现在应该理解为什么 enemy_obj.dirX 要在 -1 和 +1 之间变动了吧?

  剩下的可能就不用多解释了,下面是完整的第一帧源代码:

var enemy_obj:Object = new Object();
init = function () {
 enemy_obj.sppedX = enemy_obj.sppedY=0;
 enemy_obj.dirX = -1;
 enemy_obj.cur = 0;
 enemy._x = 150;
 enemy._y = 50;
};
/* functions */
tracker = function () {
 enemy_obj.cur = (++enemy_obj.cur)%8;
 if (enemy_obj.cur == 1) {
  enemy_obj.dirX = (enemy_obj.dirX == 1) ? -1 : 1;
  enemy_obj.speedX = (15+random(5))*enemy_obj.dirX;
  enemy_obj.speedY = 1+random(5);
 }
 enemy._x += enemy_obj.speedX;
 enemy._y += enemy_obj.speedY;
 if (enemy._y>380) {
  init();
 }
 updateAfterEvent();
};
/* run it*/
init();
setInterval(tracker, 25);

  程序还是采用了比较简单的结构,以便大家看得明白。如果您是新手,那么请务必要理解这些语句的作用和效果,我之所以把这么老的题材拿出来,主要是为了开拓新手的思路,如果您是高手,那么这些东西再简单不过了。

  程序运行起来看着很丑陋是吧?不要紧,因为本教程主要是介绍这种方式,真正应用到你自己的程序中的时候,是要加入很多元素的,如果能够用得好,会很有效的。

  我为这一系列教程开了一个帖子,大家可以去讨论,当然,在这里提问也没问题。

  这次的源代码请在这里下载。本系列的讨论在这里。

  下一讲,该应用更多的数学方面的知识了,请耐心等待。



收藏本文 打印 打印本文  推荐本文 告诉好友 投稿 投稿邮箱

站长排行

学院

新闻

专栏

盈利

[揭密网络黄链]中国留学生买凶专破日本
windows 2008中文版iis7+asp+php+Acces
贴吧发帖机使用教程(绝对原创)
超强弹出窗口代码,什么都挡不住
Windows Vista局域网网络连接设置
JSP语法(6)
FLASH视觉特效实例之地震效果
关于数据分页(转自www.codeproject.co
教你如何在Vista中设置麦克风
不用Photoshop 在线恶搞大头像
全国哀悼日网友自发QQ隐身上线 向死难
淘宝网卖家公然叫卖“艳照门”照片集
抗震救灾/鱼目混珠?
Google绿色专家质疑黑色背景网页节省资
阿里妈妈广告卖主全攻略
电影小说类相关关键字搜索量列表
爆笑 阿里就这样把亿告征服!
大脚:实战单页面优化关键词之——淘宝
国内各IT企业办公环境揭秘(多图)
心系灾区,点燃希望——手机QQ2008祈福
ECSHOP模板制作参考文档
悬挂阿里妈妈会否被百度惩罚
ECSHOP模板下载
阿里妈妈是否是中小站长的救世主?
最强网店ECShop发新版 众多酷炫功能给
土豆网,优酷网,爆米花等视频网站采集
DedeCms模板安装/制作概述
网上商店系统巅峰对决 ECShop vs ShopE
编程中国全站采集规则
http://www.mt86.com全站采集规则
性福联盟 一个不尊重站长的联盟
百度网络广告利润增长将会持续多久
大脚:日赚100元—揭露最新firefox欺骗
分享经验:个人网站如何月赚1万!
大脚:垃圾站超级赚钱法之二—突破“站
迅雷联盟、快车联盟收入对比
大脚:垃圾站超级赚钱法之——前言
Google Adsense的秘密 第二版
风险投资公司vc联系方式名录大全(一)
经理人必看的十个管理网站
站长学院  网页设计 建站教程 图形图象 网络编程

制定完整的网站
制定完整的网站
中国企业网站的
中国企业网站的

网站运营之怎么样来粘住你的用
网麒:网站建设创意
怎样提高网页快照更新
两种方法,教你如何通过微软正
英文网站优化细节
利用SSL加密增强FTP服务器的安
网页设计常用Javascript经典代

新闻线索

如果你有站长界人事变动、重组并购、变革技术出现,以及产品投诉等重要新闻线索,请告诉我们,我们会给予特别关注。
0631-3653338
站长中国编辑部
站长中国24小时新闻热线: 13156089008