我是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的错误。那么,如何将多个敌人添加到阵列以及如何让这些敌人在特定得分之间产生?
谢谢,我解决了敌人的问题,但是我仍然无法解决关卡问题。 –