-1

我找到了一个网站 http://www.flashgametuts.com/tutorials/as3/how-to-create-a-tower-defense-game-in-as3-part-1/,它给了我一个关于如何在动作脚本 3.0 中创建一个塔防游戏,它所说的将敌人的创建放在一个数组中的方式以及您放置的数字将意味着敌人的级别和子数组将用于不同的级别:

enemyArray = [//defining the array
        [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],//#s will just represent an enemy to be created
        [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],//another row means another level
        [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
        [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,0,0,0,0,3,3,3,3,3,3,3,50]
          ];

而我的问题是“有没有办法让它自动生成关卡,这样它就像一个没有尽头的生存?如果是这样怎么做”

最后,我不一定关心这个数组方法是否仍在使用,但非常感谢您的帮助。

注意:如果您点击教程的链接,我会发现很多情况下编码不正确并导致致命错误。

4

1 回答 1

0

我认为你所要求的在概念上相当简单。

例如,如果你的敌人等级是 0-50,你可以让它创建一个带有随机数字的新数组。我认为你会想要更聪明一点,并考虑到敌人的力量,产卵顺序等。

如果你想创建一个随机级别,你可以有一个函数来返回一个数组,其中包含一个级别范围内指定数量的随机敌人:

function getLevelSpawns(amount:int, levelMin:int, levelMax:int):Array
{
    var spawn:Array = new Array;
    for (var index:int = 0;index < amount;index++)
    {
         var enemyType:int = Math.random() * (levelMax-levelMin) + levelMin;
         spawn.push(enemyType);
    }

   return spawn;
}

用法是:

var spawns:Array = getLevelSpawns(50, 5,10);

这会给你一个随机生成的 50 个 5-10 级敌人的数组。

这只是一个例子。您可以使该getLevelSpawns函数更灵活、更健壮,以处理对它们进行分组,并更智能地通过参数和逻辑创建组。

于 2013-09-29T00:39:51.343 回答