如何制作枪战游戏
1.鼠标跟随startDrag(这个,真);用作标准具。
2.级别-级别控件swap depths();
3.碰撞检测hitTest(_root.gun.hit)
4.动态加载敌人:_ root . attach movie();
5.动态文本框制作显示分数
生产流程:
1.准备一个射击动画的瞄准镜。
2.一个敌人MC,里面有一个敌人被射杀的动画。敌方MC的连接ID在库中被命名为“man”。
3.动态文本框编码:首先,主时间轴的第一帧为:
//-主时间
中间轴代码。
//隐藏鼠标
mouse . hide();
//初始设置分数为0。
分数= 0;此变量必须对应于分数文本框的变量名。
//封装代码,建立新函数“copyman”
函数copyman() {
//将库中ID为“man”的MC复制到主场景,命名为“man”+_root.i,图层级别为_ root . I。
//注意:_root.i没有设置初始值,所以默认为无。
// _root.i++,即_root.i+1。
_root.attachMovie("man "," man"+_root.i,_ root . i++);
//设置新MC的位置
//将复制的新MC放在X轴在0到550之间,Y轴在0到400之间的随机坐标上。
_root["man"+_root.i]。_ x = random(550);
_root["man"+_root.i]。_ y = random(400);
}
//执行新功能
copy man();
然后将瞄准器MC拖到名为“gun”的舞台实例上,并编写为:
// -视线MC的代码。
onClipEvent (enterFrame) {
//实现鼠标跟随,将鼠标设置到这个MC的注册点。
startDrag(这个,真);
}
onClipEvent (mouseDown) {
//鼠标按下时运行到这个MC帧3(火动画)。
gotoAndPlay(3);
}
onClipEvent(加载){
//将次准直级别设置为9999。数字越高级别越高,防止瞄准被敌人覆盖。
this . swap depths(9999);
}
这个MC里面有一个火的动画。一个不可见的MC被添加到火动画的这个部分,该实例被称为“hit”。
让敌人MC在里面
敌方MC内部,第一帧是没拍的时候的画面。在此框架中,添加一个不可见的MC和AS:
//冲突检测
onClipEvent (enterFrame) {
//如果检测到瞄准器MC中的hit处于接触状态,则跳转到上一级的第五帧执行。
if (hitTest(_root.gun.hit)) {
_ parent . gotoandplay(5);
}
}
5帧之后,就是中枪后死亡的动画,最后一帧加的AS:
//分数加100
_ root . scores+= 100;
//运行复制人功能复制敌人。
_ root . copyman();
//删除这个MC
remove movie clip(this);