我通過創建一個新類(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