我正在尝试制作一个简单的as2射击游戏但是当我试图射击敌人时,子弹就会通过它而不会移除敌人。我试着把
if (hitTest(_root.vihollinen)==true
){
_root.vihollinen.remove();
this.removeMovieClip();
}
但没有任何反应
大多数代码只是复制/粘贴,因为我对编码知之甚少,但我正在努力学习!
https://www.dropbox.com/s/58u34tbeve6oile/game.zip
答案 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();
}
};
如果你曾经使用onEnterFrame
这样的处理程序,那么总是用this
来引用当前对象是个好习惯,就像所以:if(this.hitTest(_root.vihollinen) == true){
remove()
不是ActionScript2函数。请尝试使用unloadMovie()
,例如:_root.vihollinen.unloadMovie()
改变这三件事会使你的代码发挥作用。确保您尝试遍历代码的每个部分并尽可能地理解它 - 从长远来看,这将使事情变得更加容易,即使需要花费很长时间来弄清楚为什么每个部分都在那里!