我有点想用 SO 来指出一些事情。
首先,在这个游戏中使用“脚本”有点奇怪,因为与“普通”Javascript 脚本不同,执行的方式是不同的。我们都知道,在脚本中,第一件事首先被执行。所以如果我有:
Game.spawns.Spawn1.createCreep( [Game.WORK, Game.WORK, Game.CARRY, Game.MOVE], 'worker1');
Game.spawns.Spawn1.createCreep( [ Game.TOUGH, Game.TOUGH, Game.MOVE, Game.HEAL], 'healer1');
你会假设工人 1 会被创建。那不是真的。Healer1 被创建。让人们了解脚本的执行方式会很有用。现在上面的例子很简单,但在我的例子中,我有一堆语句,我花了一段时间才弄明白。
接下来是creep名称。如果小兵死亡,名字应该是“消失”。我确实检查了这一点,并且由于某种原因,该名称“可用”再次使用,但该名称仅在一些滴答声后才可用。不是即时的!所以客户端和“服务器”是有区别的。现在,这显然可以通过多次迭代而不是重用名称来解决。说实话,我更喜欢重用名称。为什么?也许你的脚本会运行多年,这会导致像“worker1209128102981209128”这样的名字,在我的强迫症看来不是“好”。就我而言,我等到错误“名称已在使用中”消失了几个滴答声,然后再创建它。你有点“浪费”时间。
控制台.log(); (empty) ,将导致您的控制台精神崩溃。这种风格会被“窃听”。
接下来的事情:在新游戏中并不总是清除内存状态。也会导致一些奇怪的事情:你自己的记忆中已经有了东西,或者敌人的小兵波已经在第 1 波之后的波上。
我在 API 中没有找到的另一件事;Creeps 首先在他们的第一个模块上获得命中。所以,你很聪明地把 TOUGH 放在第一位,因为它是一个“无用”的模块。其次是其他不太有用的模块。
现在对于游戏模式,敌人的 AI 可能会被窃听。例如,如果你 - 不 - 移动你的小兵,敌人就不会攻击。当你让一个敌人从一波中存活时也是如此,人工智能可能会被“窃听”。不确定它是否正常,但过了一会儿我有以下情况;我无法“相信”如此快速地对抗这么多如此强大的敌人小兵是正常的(已经看身体模块了
最后,我可能想请开发人员做一些我们可以与开发人员交流的东西。即使 stackoverflow 很好,IMO 也更多地用于那些想要在正确的方向上稍微推动的人。
谢谢,我真的很喜欢这个游戏,我希望它会变得更大!:)