Flash游戏开发系列一:游戏中的敌人(1)
对于目前的 Flash 来说,开发一些像模像样的游戏并不是什么奇怪的事情了。我这里所涉及到的内容和开发游戏有关,但是都是一些比较基本的知识。如果您是游戏开发方面的高手,那么完全可以忽略我这里所描述的内容。我的计划是要做一系列的教程,这是其中一个系列。
游戏是一个交互作品,简单说,就是通过用户的行为,会对这个作品的进程产生一定的影响。说到游戏,总要提到难度,游戏的难度在于:当你想要达到某种目的
的时候,你会发现它的实现多少有些困难,困难越难克服,难度也就越大。不同类型的游戏有不同的难度,以及不同的实现方法。比如:俄罗斯方块通过改变方块下
落的速度来改变游戏的难度,空战射击游戏通过不同的敌机以及不同的 Boss 来实现不同的难度。
在这个系列里面,我们想和大家一起研究一下游戏中敌人的运动方式,一点一点来。AS 基础最好是有一些,不然会稍微有些头疼。
一、最直接的跟踪
首先看看这个例子:
< width="400" height="300" src="http://www.pconline.com.cn/pcedu/sj/wz/flash/0501/flash/18flashgp01.swf" src="http://www.pconline.com.cn/pcedu/sj/wz/flash/0501/flash/18flashgp01.swf" width="400" height="300">
假定红色圆圈是玩家,绿色圆圈是敌人,移动你的鼠标,敌人就会跟着你跑。
这就是最简单的跟踪敌人,它的原理是:
如果(玩家x坐标 <> 敌人x坐标){
调整敌人x坐标,趋近玩家x坐标
}
如果(玩家y坐标 <> 敌人y坐标){
调整敌人y坐标,趋近玩家y坐标
}
这应该是极其容易理解的。那么具体的代码实现应该是什么样子的呢?
我们先把两个不同的 MovieClip 放置在舞台上,一个实例名叫做 player,另外一个叫做 enemy。
为了方便,我们仅仅通过鼠标来实现玩家的移动,于是代码就很简单了:
player._x = _xmouse-10;
player._y = _ymouse-10;
updateAfterEvent();
玩家可以移动了,下面来解决坐标调整的问题。
看上面的图片,不管玩家和敌人处于什么位置,只要不重合,两个角色之间总是具有一定距离的,我们用 dx 和 dy 来代表 x 方向和 y 方向的差值。根据 dx 和 dy,基于敌人靠近玩家的概念,我们就可以得出敌人应该前进的方向。
敌人应该具有一定的速度,根据这个速度向玩家靠近。所以我们可以先定义一个变量来代表敌人的速度:enemySpeed。
根据分析,我们可以得出下面的计算公式:
dx = player
相关文档:
项目中需要用到SPI flash,在使用这个4MB 的SPI flash中出了三个问题让印象深刻,特记录下来以作提醒
问题1:我们知道SPI flash也分主从模式,一般master都是有MCU等器件担当的,而slave有SPI器件担任,我这个小系统同样如此。
并且MCU是自带有SPI controler,接 ......
Adobe近日就一个长达16个月的Flash漏洞发表公开道歉,尽管这之间Adobe为Flash提供了四次升级,但是该漏洞被公布了16个月后,也就是在11月底发布的Flash Player 10.1 Beta中这个漏洞才被修复。安全研究人员Matthew Dempsky在2008年9月22日首次在Adobe的Bug数据库中披露了这个漏洞(JIRA FP-677),它会导致IE6、IE7、Firefox ......
1.查找firefox的安装目录
$rpm -ql firefox
我的firefox安装目录为/usr/lib/firefox-3.0.5
2.install_flash_player_10_linux.tar.gz 解压
tar zxfv install_flash_player_10_linux.tar.gz
解压出libflashplayer.so
3. 将libflashplayer.so移动到/usr/lib/firefox-3.0.5/plugins
4.重启firefox ......
若所播放的flash里有字体乱码(显示为方块),那么按如下方法解决:
1 在终端里输入sudo gedit /etc/fonts/conf.d/49-sansserif.conf然后回车
2 将倒数第四行 <string>sans-serif</string> 改为 <string>文泉驿正黑</string>
保存即可,重启firefox,flash乱码解决了 ......
今天光顾了外国的某一些博客对位图的应用,发现对位图的操作会变化出很多很多效果,其中一篇是像素画的实现,借助这种对位图的像素操作应用,重新组合成新的图片,然后拼合成一张新的图片。
思路很简单。借用这种手法应用对一些效果会很大帮助。如聚合与分散的像素动画。
左边是一张正常的,而右边是 ......