教程|源代码
见截图先:
OSS制作教程+详细代码解释+源代码-速卖通详细描述源代码">
点击这里下载原文件
大家好,,,,第一次写这个东东~~心理好紧张挖````
大家了很多的FLASH飞机游戏,,,但是真正象"灵动碰射"那样完整的少之又少,大部分都是没
有BOSS的,,,只是在一个画面内循环出现敌机,趣味自然降低了不少...
近来FLASH8游戏版块新教程太少,我也写个教程,,算是对FLASH8游戏版块的一个回报:-)
在这里我只谈做BOSS的制作思想,其他的主角啊,,敌人(小兵)就不包括其内了,,,FLASH8关于这方面的教程应该有很多,大家可以去找一下
好了,废话不多说了,,,总而言之,,,我的方法不是最好的,,,但希望可以给菜鸟一些鼓励和信心(包括我),,做出自己的象"灵动碰射"一样的游戏来:-)
点击下载源文件
大家好,,,,第一次写这个东东~~心理好紧张挖````
大家了很多的FLASH飞机游戏,,,但是真正象"灵动碰射"那样完整的少之又少,大部分都是没有BOSS的,,,只是在一个画面内循环出现敌机,趣味自然降低了不少...
近来FLASH8游戏版块新教程太少,我也写个教程,,算是对FLASH8游戏版块的一个回报:-)
在这里我只谈做BOSS的制作思想,其他的主角啊,,敌人(小兵)就不包括其内了,,,FLASH8关于这方面的教程应该有很多,大家可以去找一下
好了,废话不多说了,,,总而言之,,,我的方法不是最好的,,,但希望可以给菜鸟一些鼓励和信
心(包括我),,做出自己的象"灵动碰射"一样的游戏来:-)
原理其实很简单:
BOSS是独立的,,,他自己是一个单独的MC,,,这个MC里面有很多桢,,,每一桢都是它的一个"行为",,,比如: 向主角移动拉,,,,狂发子弹拉....发超必杀攻击拉....自己死亡的动画拉,,,,然后这个MC的第一祯,,,是一个随机函数,,,随机转到BOSS的MC里面的一祯,,,那么BOSS就会响应的做出行为,,,怎么样??是不是很简单呢?那么开启你的FLASH 2004,开始正式的制作吧,呵呵
1:舞台上MC的布置:
主场景一共就两个MC,,,,一个是BOSS的子弹,,,在场景里面名字叫做bosszd,,,另外一个就是BOSS拉,,,理所当然,,,,它在场景里面的名字就叫它BOSS吧!
2:BOSS最外层的事件处理器:代码如下:
onClipEvent (load) {
this._alpha = 0;//刚出来的透明度是为0的,,,目的是让它出场有个平滑的效果
}
}
onClipEvent (enterFrame) {
if (this._alpha<100) {//也就是上面所说的拉,,,初始化的时候BOSS的ALPHA为0,,,当它小于100的时候,让他从最右边(场景外)飞进来,,,直到ALPHA为100的时候就暂时停止下来了
this._x -= 9;
this._alpha += 5;
}
if (this._x<=354) {
this._x++;
}
if (this._x>=495) {
this._x--;
}///这两句是让BOSS限制在场景右方运动,,,如果跑到最左边了那么游戏者就表活了噢:-)
}
3.随机运动起来吧!!!BOSS!!!
双击进入BOSS的MC,第一祯代码:
onClipEvent (load) {
this._alpha = 0;//刚出来的透明度是为0的,,,目的是让它出场有个平滑的效果
}
}
onClipEvent (enterFrame) {
if (this._alpha<100) {//也就是上面所说的拉,,,初始化的时候BOSS的ALPHA为0,,,当它小于100的时候,让他从最右边(场景外)飞进来,,,直到ALPHA为100的时候就暂时停止下来了
this._x -= 9;
this._alpha += 5;
}
if (this._x<=354) {
this._x++;
}
if (this._x>=495) {
this._x--;
}///这两句是让BOSS限制在场景右方运动,,,如果跑到最左边了那么游戏者就表活了噢:-)
}
3.随机运动起来吧!!!BOSS!!!
双击进入BOSS的MC,第一祯代码:
onClipEvent (load) {
this._alpha = 0;//刚出来的透明度是为0的,,,目的是让它出场有个平滑的效果
}
}
onClipEvent (enterFrame) {
if (this._alpha<100) {//也就是上面所说的拉,,,初始化的时候BOSS的ALPHA为0,,,当它小于100的时候,让他从最右边(场景外)飞进来,,,直到ALPHA为100的时候就暂时停止下来了
this._x -= 9;
this._alpha += 5;
}
if (this._x<=354) {
this._x++;
}
if (this._x>=495) {
this._x--;
}///这两句是让BOSS限制在场景右方运动,,,如果跑到最左边了那么游戏者就表活了噢:-)
}
3.随机运动起来吧!!!BOSS!!!
双击进入BOSS的MC,第一祯代码:
onClipEvent (load) {
this._alpha = 0;//刚出来的透明度是为0的,,,目的是让它出场有个平滑的效果
}
}
onClipEvent (enterFrame) {
if (this._alpha<100) {//也就是上面所说的拉,,,初始化的时候BOSS的ALPHA为0,,,当它小于100的时候,让他从最右边(场景外)飞进来,,,直到ALPHA为100的时候就暂时停止下来了
this._x -= 9;
this._alpha += 5;
}
if (this._x<=354) {
this._x++;
}
if (this._x>=495) {
this._x--;
}///这两句是让BOSS限制在场景右方运动,,,如果跑到最左边了那么游戏者就表活了噢:-)
}
3.随机运动起来吧!!!BOSS!!!
双击进入BOSS的MC,第一祯代码:
stop();
a = random(8)+2;
gotoAndStop(a);
//主要是取得一个随机数,,然后跳转到这个祯,,从而可以随机出BOSS的不同行为
终于开始发射子弹拉!!!第2祯代码:
为了形象,,,在这一祯,BOSS已经不是一个静止的图片了,,为什么?它在发射子弹!!!
我用了一个很简单的循环小动画MC来表示他在发子弹
这个发射子弹的MC事件处理函数如下:
onClipEvent (load) {
count = 0;//初始化一个行为持续计时器,,,我们叫用来控制当前这个动作(发射子弹动作)的持续时间
time = 0;//初始化子弹间隔计时器,,,
}
onClipEvent (enterFrame) {
if (_root.plane._y<=110) {
_root.boss._y += 3;
}//让BOSS在发射子弹的同时,,,进行一个Y方向上的移动,,,这样不至于让它太呆板
time++;
count++;//既然是计时器,,,他当然是不断的自增拉...模拟时间的流逝
if (time>=5) {
duplicateMovieClip(_root.bosszd, "bosszd"+count, count+11100);
time = 0;//当子弹间隔计时器到了5,马上让他清0,,,达到子弹的循环复制
}
if (count>=25) {
_root.boss.gotoAndPlay(1);
}//行为持续计时器大于25的时候,,,让他到第一祯,,,进行下一次的随机调用行为
}
关于子弹,,它是和BOSS完全独立的,,,也就是他有自己的方法,,,他是固定的,,,代码如下:
onClipEvent (load) {
if (String(_name) != "bosszd") {
this._x = _parent.boss._x-104;
this._y = _parent.boss._y+160;
}
//这两句就是初始化子弹刚出现的位置,,,对他的位置进行调整,,我这是从BOSS的枪口出来,,如果你喜欢也可以把X,Y再设大点,,让它从BOSS屁股出来都可以
}
onClipEvent (enterFrame) {
if (String(_name) != "bosszd") {
//如果这个实例的名字不为BOSSZD,,就执行里面的函数其实这个MC本身是不会执行代码的,,,说白了它只是一个摸版,,让BOSS来复制用的,,复制出来的名字是BOSSZD+"子弹记数器",,,
this._x -= 10;//BOSS子弹的运动路径,,既:从右向左运动
if (this._x<=0) {
removeMovieClip(this);//如果子弹超出屏幕,,,删除掉...
}
}
}
好了,,,这只是一个其中的行为,,,其他的只要是发射子弹的行为,,,制作思路都是一样的,,,把其他的发射子弹行为放在其他的祯上面就能实现随机的发射不同类型的子弹,,,比如,,发散弹拉,,,发开棉花子弹拉````发超大拉,,,恩?发超大??那么下面我再叙述下这个行为吧
4.快点发超必杀吧!!!否则你不配叫BOSS这个名字!
这个看起来很深奥,,其实如果你看懂了上面的东东,,应该不用我说你都能想到该怎么做了...
这里我不再罗嗦,,,否则又要给人拍砖,,,,简单的讲解下思路我做的这个BOSS发超大的时候会全身一亮,,,画面一闪,,,然后一道激光射出,,,这一切其实只是一个MC,,,我相信大家都知道这个动画该怎么做,,,何况大家都能设计出自己喜欢的BOSS发超大时候的动作,,,我不在这般门弄斧拉:-)
要注意一点的地方就是:激光在射出的过程中是用一个形变动画做的,,,激光也算是一种子弹
所以他也要检测与主角的碰撞,,,所以,,要在这个激光上加上
if(this.hitTest(_root.主角){_root.主角.endlife()}//如果射中了主角,,主角就挂了
5,举一反三,,,设计属于你自己的BOSS吧!!
这里我虽然只讲了BOSS的两个动作,,但是要延伸动作,,并不难,,,无非就是在多些帧,,,在这些新加的祯上再去阐述BOSS的行为,,,,比如,,,第3帧发散弹拉....第4帧发开花弹....第5帧BOSS突然向主角做自杀试的碰撞拉,,,,多参考参考彩京系列吧....
一般在最后一帧再加上BOSS死亡的动画,,,到它的HP=0就跳到这一祯,,..
6.尾声...
到这里为止,,,差不多关键的地方都叙述完了,,,也花了我将近两个小时的时间,,,汗....
总之,,希望大家看了这个后有所收获,,,创造出自己喜欢的BOSS来!!!
点击浏览该文件