我是AS3和本網站的新手。我使用http://asgamer.com/2009/as3-flash-games-for-beginners-scores-huds-and-user-interface的教程來創建我自己的射擊遊戲版本。本教程附帶1個敵人和1個遊戲等級,我試圖添加更多的敵人和關卡。ActionScript 3語法錯誤
這裏的原Engine.as從教程編碼:
package com.asgamer.basics1
{ import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
public class Engine extends MovieClip
{
private var numStars:int = 80;
public static var enemyList:Array = new Array();
private var ourShip:Ship;
private var scoreHUD:ScoreHUD;
public function Engine() : void
{
ourShip = new Ship(stage);
ourShip.x = stage.stageWidth/2;
ourShip.y = stage.stageHeight/2;
ourShip.addEventListener("hit", shipHit, false, 0, true);
stage.addChild(ourShip);
scoreHUD = new ScoreHUD(stage);
stage.addChild(scoreHUD);
for (var i:int = 0; i < numStars; i++)
{
stage.addChildAt(new Star(stage), stage.getChildIndex(ourShip));
}
addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
}
private function loop(e:Event) : void
{
if (Math.floor(Math.random() * 90) == 5)
{
var enemy:Stinger = new Stinger(stage, ourShip);
enemy.addEventListener(Event.REMOVED_FROM_STAGE, removeEnemy, false, 0, true);
enemy.addEventListener("killed", enemyKilled, false, 0, true);
enemyList.push(enemy);
stage.addChild(enemy);
}
}
private function enemyKilled(e:Event)
{
scoreHUD.updateKills(1);
scoreHUD.updateScore(e.currentTarget.points);
}
private function removeEnemy(e:Event)
{
enemyList.splice(enemyList.indexOf(e.currentTarget), 1);
}
private function shipHit(e:Event)
{
scoreHUD.updateHits(1);
}
}
}
對於敵人,我創建了一個名爲Stinger2另一個敵人和下面的第一個敵人循環下,加入它,但我得到了錯誤1021和5000
private function loop(e:Event) : void
{
if (Math.floor(Math.random() * 90) == 5)
{
var enemy:Stinger = new Stinger(stage, ourShip);
enemy.addEventListener(Event.REMOVED_FROM_STAGE, removeEnemy, false, 0, true);
enemy.addEventListener("killed", enemyKilled, false, 0, true);
enemyList.push(enemy);
stage.addChild(enemy);
}
}
private function loop(e:Event) : void
{
if (Math.floor(Math.random() * 90) == 5)
{
var enemy:Stinger2 = new Stinger2(stage, ourShip);
enemy.addEventListener(Event.REMOVED_FROM_STAGE, removeEnemy, false, 0, true);
enemy.addEventListener("killed", enemyKilled, false, 0, true);
enemyList.push(enemy);
stage.addChild(enemy);
}
}
對於關卡,我想創建3個不同的關卡。第一級只帶毒刺,第二級只帶毒刺2,最後一級帶毒刺和毒刺2。還有從教程一個評分系統,下面的編碼從教程,它控制敵人的機會滋生:
if (Math.floor(Math.random() * 30) == 5
我試圖將其更改爲:
if (Math.floor(Math.random() * 30) == 5 && scoreHUD(value:Number) < 10000)
所以只有毒刺當玩家的得分低於10000(1級)時會產生,但是我得到了1084的錯誤。那麼,如何將多個敵人添加到陣列以及如何讓這些敵人在特定得分之間產生?
謝謝,我解決了敵人的問題,但是我仍然無法解決關卡問題。 –