我通过查看一些不同的教程,使用starling框架在as3中开发了一个射击游戏。 问题是所有教程都教导创建从一侧移动到另一侧的随机敌人。我想知道如何在屏幕上创建不同形式的敌人。
任何人都可以建议任何书籍,教程或任何基本算法让我走上正轨吗?
答案 0 :(得分:1)
这是一种产生阵型的相当简单的方法。
在您的库中创建一个名为formation
的符号,并将其用作您的链接/类名。
在该符号中,在您想要的任何位置放置5个标记MovieClip。对于标记剪辑,我建议使用居中的圆圈。放置这些标记的任何地方,都代表敌人将在哪里生成。
现在,在您想要生成此阵型的代码中,您可以执行以下操作:
var formationData:MovieClip = new formation;
for (var index:int = 0;index < formationData.numChildren;index++)
{
var spawnMarker:MovieClip = formationData.getChildAt(index) as MovieClip;
var enemy:Enemy = new Enemy;
enemy.x = spawnMarker.x;
enemy.y = spawnMarker.y;
addChild(enemy);
}
现在,这将根据您在编队符号中设置的内容生成阵型。
您可以通过执行以下操作来抵消产生的敌人的位置:
var offsetX:Number = 200;
var offsetY:Number = 50;
for (var index:int = 0;index < formationData.numChildren;index++)
{
var spawnMarker:MovieClip = formationData.getChildAt(index) as MovieClip;
var enemy:Enemy = new Enemy;
enemy.x = offsetX + spawnMarker.x;
enemy.y = offsetY + spawnMarker.y;
addChild(enemy);
}
这个概念允许您做什么,在Flash IDE中可视化地布局您的构造。所以你可以创建一大堆不同的编队并选择一个随机编队。生成点是否拼出一个单词?
显然上面的代码就是一个例子,你需要将这个概念集成到你的产卵系统等中。
根据敌人产生的位置,您可能需要使用偏移量在屏幕外启动它们。