所以敌人确实丢了一枚硬币,但我没有得到硬币的属性(如果它击中玩家它会给他+5硬币)
如果硬币击中舞台底部、玩家死亡或玩家击中它,硬币将被移除。可悲的是,它不起作用。
但是,如果我在开始游戏之前将硬币放在舞台上,这确实有效,它会获得它的所有属性,所以它必须是它被添加到舞台的那一刻,它不会与编码或其他东西联系起来。 ...这就是我现在的位置。
这是硬币的 .as 文件:
包裹 {
import flash.display.MovieClip;
import flash.events.Event;
public class Coin1 extends MovieClip
{
private var _root:Object;
private var speed:int = 0;
public function Coin1()
{
addEventListener(Event.ENTER_FRAME, Speed1);
addEventListener(Event.ADDED, beginClass);
addEventListener(Event.ENTER_FRAME, coin1go);
}
private function beginClass(event:Event):void
{
_root = MovieClip(root);
}
private function Speed1(event:Event):void
{
y += speed;
}
private function coin1go(event:Event):void
{
if (this.y > stage.stageHeight)
{
removeEventListener(Event.ENTER_FRAME, coin1go);
_root.removeChild(this);
}
if (hitTestObject(_root.player_mc))
{
_root.coin += 1;
removeEventListener(Event.ENTER_FRAME, coin1go);
_root.removeChild(this);
}
if (_root.playerhealth <= 1)
{
removeEventListener(Event.ENTER_FRAME, coin1go);
_root.removeChild(this);
}
}
}
}
这是它被添加到舞台的部分:
if (enemy2health <= 0)
{
removeEventListener(Event.ENTER_FRAME, eFrame);
_root.score += _root.Enemy2Score * _root.scoremultiplyer;
stage.addChild(newExplosionSmall)
newExplosionSmall.x = this.x;
newExplosionSmall.y = this.y;
stage.addChild(newCoin1)
newCoin1.x = this.x;
newCoin1.y = this.y;
屁股你可以看到还有一个爆炸的附加子,它工作得非常好,但这可能只是因为它除了出现并移除自己之外什么都不做。
长话短说:敌人丢了硬币,但它什么也没做,漂浮到屏幕底部,我得到一个不断出现的 1009 错误。那么有人知道如何解决这个问题吗?