-3

通过查看一些不同的教程,我一直在使用 starling 框架在 as3 中开发射击游戏。问题是所有教程都教导创建从一侧移动到另一侧的随机敌人。我想知道如何在屏幕上创建不同的敌人阵型。

任何人都可以推荐任何书籍、教程或任何基本算法来让我走上正轨吗?

4

1 回答 1

1

这是一种相当简单的生成编队的方法。

在您的库中创建一个名为的符号formation并将其用作您的链接/类名称。

在该符号中,将 5 个标记 MovieClips 放置在您想要的任何位置。对于标记剪辑,我建议使用居中的圆圈。无论您将这些标记放在哪里,都代表了敌人将在哪里产生。

现在,在您想要生成此编队的代码中,您可以执行以下操作:

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 中直观地布置您的编队。因此,您可以创建一大堆不同的阵型并随机选择一个。出生点是否拼出了一个单词?

显然,上面的代码是一个示例,您需要将该概念集成到您的生成系统等中。

根据你的敌人从哪里产卵,你可能需要使用偏移量来让它们离开屏幕。

于 2013-04-25T18:12:06.697 回答