发新话题
打印

flash制作rts游戏请求帮助(有附件)

flash制作rts游戏请求帮助(有附件)

各路高手谢谢了,
eplane(mc):
i = random(40000)+360000;
_root.attachMovie("eplane", "eplane"+i, 10+i+i);
_root["eplane"+i]._x = _root.ebase._x+35;
_root["eplane"+i]._y = _root.ebase._y+random(40);
mans(mc):
i = random(40000)+80000;
_root.attachMovie("mans", "man" add i, 11+i+i);
_root["man" + i]._x = _root.light._x+45;
_root["man"+ i]._y = _root.light._y+random(45)-random(45);
复制出来的两个影片剪辑我想检验他们的碰撞用:hitTest来检验(不行的话给个方案也行),
代码怎么写。
具体在附件里,改一下请发上来,非常感谢!!!!!
攻击检验.fla (128 KB)

TOP

这个大哥可以教我一下怎样由FLASH里做动哪么多帧合成一个a变成一帧上传,我做的很多个帖,上传就是格式不对

TOP

总算做完了!
thewar.swf

TOP

有2个解决方法。
eplane(mc):
i = random(40000)+360000;
_root.attachMovie("eplane", "eplane"+i, 10+i+i);
_root["eplane"+i]._x = _root.ebase._x+35;
_root["eplane"+i]._y = _root.ebase._y+random(40);
mans(mc):
j = random(40000)+80000;
_root.attachMovie("mans", "man" add j, 11+j+j);
_root["man" + j]._x = _root.light._x+45;
_root["man"+ j]._y = _root.light._y+random(45)-random(45);
此方法把第二个剪辑中的变量名i统统换成j
这样可以用
_root["eplane"+i]和_root["man"+ j]来表示这2个剪辑了。




考虑到楼主做的是rts游戏,man和eplane当然未必只有一个,
从原理上讲,楼主提出这个问题是因为算法问题,
楼主害怕复制的eplane重叠,便设置了一个random(40000),结果导致自己也抓不住这影片到底叫什么了。

下面算法是从核心脚本方面改的,
本人先说思路:
eplane和man不会无限增加,否则cpu不用要了。
我们可以预先知道eplane的最大数量,假如敌人的飞机最多10架。
那么用eplane0,eplane1,eplane2...eplane9就可以全表示
因为楼主脚本是用AS1.0写的,我入乡随俗。
在主场景定义一个全局变量     i=0;  //做man的时候别用i,换成j
主场景定义10个飞机的HP为全局变量,都是0,此变量可以写在飞机元件上。
{
复制一架飞机                _root.attachMovie("eplane", "eplane"+i, i);
复制后立刻给予该飞机hp           _root["eplaneHP"+i] = 100
然后让i增加1                                i++       if(i==10){i=0}
检测i对应的飞机hp是否<=0      while( _root["eplaneHP"+i] <=0){  i++;     if(i==10){i=0}     }
}
//上面脚本会找到10个位置中的哪个没有飞机(死亡或未创建)
//最后的效果是做出了一架飞机,并且让i转换到了适合的位置,方便造下一架

注意!上面脚本仅是思路,不包括检测安全的问题,只要总飞机数量达到10架就会死循环

TOP

发新话题