0

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

4

1 回答 1

0

最重要的问题是你的敌人需要一个实例名称才能让代码理解它。只需单击您的敌人影片剪辑,然后添加vihollinenInstance 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()

更改这三件事将使您的代码正常运行。确保您尝试浏览代码的每个部分并尽您所能理解它 - 从长远来看,这会使事情变得更容易,即使需要很长时间才能弄清楚每个部分存在的原因!

于 2013-10-04T14:46:18.933 回答