Flash as2子弹去除敌人?

时间:2013-09-17 07:01:03

标签: actionscript-2

我正在尝试制作一个简单的as2射击游戏但是当我试图射击敌人时,子弹就会通过它而不会移除敌人。我试着把 if (hitTest(_root.vihollinen)==true ){ _root.vihollinen.remove(); this.removeMovieClip(); } 但没有任何反应 大多数代码只是复制/粘贴,因为我对编码知之甚少,但我正在努力学习! https://www.dropbox.com/s/58u34tbeve6oile/game.zip

1 个答案:

答案 0 :(得分:0)

最重要的问题是你的敌人需要一个实例名称才能使代码理解它。只需点击您的敌人动画片段,然后将vihollinen添加到顶部的Instance Name字段。

接下来,您的项目符号代码已关闭,但需要进行一些调整。这是你的代码:

_root["bullet" + bulletsFired].onEnterFrame = function(){
    this._x += this.xmov;
    this._y += this.ymov;
    if (hitTest(_root.vihollinen)==true){
        _root.vihollinen.remove();
        this.removeMovieClip();
    }
};
  1. 如果你曾经使用onEnterFrame这样的处理程序,那么总是this来引用当前对象是个好习惯,就像所以:if(this.hitTest(_root.vihollinen) == true){

  2. remove()不是ActionScript2函数。请尝试使用unloadMovie(),例如:_root.vihollinen.unloadMovie()

  3. 改变这三件事会使你的代码发挥作用。确保您尝试遍历代码的每个部分并尽可能地理解它 - 从长远来看,这将使事情变得更加容易,即使需要花费很长时间来弄清楚为什么每个部分都在那里!