我通过创建一个新类(Fireball.as)并在类名后输入“extends FlxSprite”来为火球创建了一个自定义FlxSprite。在构造函数中,它调用了一个名为“拍摄()”函数,它引导到目标并播放一个声音:为什么我的自定义FlxSprite不出现在舞台上?
private function shoot():void {
dx = target.x - x;
dy = target.y - y;
var norm:int = Math.sqrt(dx * dx + dy * dy);
if (norm != 0) {
dx *= (10/norm);
dy *= (10/norm);
}
FlxG.play(soundShoot);
}
然后,我创建了一个数组来保存在游戏状态下所有的火球(PlayState.as):
public var fire:Array = new Array();
然后在我的输入()函数,当有人按下鼠标按钮时,它推动所述阵列中一个新的火球:
if (FlxG.mouse.justPressed()) {
fire.push(new Fireball(x, y, FlxG.mouse.x, FlxG.mouse.y));
}
但是当我测试了一下,只播放声音,但火球不露面。我猜测火球是在舞台的后面,但我该如何解决?
如果有帮助,下面是Fireball.as构造:
public function Fireball(x:Number, y:Number, tar_x:Number, tar_y:Number) {
dx = 0;
dy = 0;
target = new FlxPoint(tar_x, tar_y);
super(x, y, artFireball);
shoot();
}
谢谢!我忘了将它添加到Flixel。 Flixel拥有自己的自定义函数,用于添加名为add()的函数,这几乎是Flip版本的addChild()。非常感谢! – dizzydj7 2013-02-18 00:41:28
你可以向我发送代码,Flixel将它添加到舞台上吗?声音可以在没有增加舞台的情况下播放,所以。 – vikingmaster 2013-02-18 00:42:43
我改变了我以前的评论。谢谢! – dizzydj7 2013-02-18 00:45:49