塔防游戏:他们是如何制作的?

时间:2013-09-11 01:45:40

标签: architecture game-engine

我已经做了一些研究(大约需要花费一些时间)并且对于这些塔防游戏的创建方式已经相对空洞。一般来说,我想如果我了解在TD游戏中如何处理某些情况,我可以很好地了解其他形式的Android游戏。我有一些一般性的问题,我希望你聪明的人可以给我一些见解,或者至少指出我可以获得一些信息。

  1. 如何处理路径?我可以做的唯一假设是将实际路径绘制为背景图像,将敌人绘制为常规图像(可能以快速重新绘制以创建动画?),它们转向的点只是屏幕上的坐标。 ..我确定它必须比那更复杂......

  2. 考虑到我的假设是#1的大概,目标是如何处理的?如何处理射击动画 - 即塔射箭实际上创建了一个箭头实体,该箭头实体移动到预定的目的地,并且一旦那里造成伤害或错过,或者箭头只是一个动画和击中/未命中/伤害预定在有一点?

  3. 这些可能是愚蠢的问题,因为它们是多么含糊不清......但是我不确定如何用短语来表达我正在寻找的答案。基本上:当我创建塔防风格的游戏时,我是否创建了一个虚拟世界,其中各个实体实时相互影响,或者我是在创建一个伪世界,只是一个背景事件的舞台?什么是学习我可以用来创建这样一个环境的概念的第一步?

    我确信有一些框架或库已经包含了一堆预先构建的东西来处理这种东西,但使用其他人的预制游戏对我来说并不是一个可靠的学习经验。这会告诉我如何使用那里的东西,我想知道为什么它在那里,它在哪里,并想出我自己的方式。

1 个答案:

答案 0 :(得分:3)

我认为你的问题的症结在于图形是否在游戏的逻辑/模拟中发挥了重要作用。如果不看这些游戏的实际实现,我会大肆宣传他们没有。

您可能希望将路径表示为攻击者可以占据的离散点列表或数组。它很可能是在二维空间;我还没有看过3D塔防游戏。但是,我只玩过几次。

(另一种方法可能是将路径表示为分段函数/一系列曲线,但确定下一步的数学会更加强烈。我可能更喜欢咬住子弹并绘制出如上所述的路径。 )

可以建造塔的位置也可以表示为坐标。

然后,您将启动一个循环,在每次迭代时都会考虑(至少)以下内容:

  • 对于每个敌人,下一步是什么?也许它只是循环每N次迭代(对于一个慢速的敌人),或者每次迭代都需要N步(快速的敌人)。
  • 对于每个塔,什么敌人在范围内?我认为你必须迭代当前敌人的列表,或者你可以维护一个范围内的瓦片列表并检查它们是否存在的敌人。如果一个敌人在射程范围内,那么塔是否可以射击它? (例如,每次迭代需要N次射击或每N次迭代射击一次)。如果它射击,你计算伤害,看看敌人是否还活着。

关于如何拍摄跨越时空的箭头的问题,我认为这将是确定性的,但可能有几种方法。但是,这将是确定性的。您可以通过多次迭代延迟屏幕上的动画,以便您可以设置塔在拍摄箭头时发生的动画,或者您可以计算箭头从现在开始拦截N次迭代的位置,并且基本上您的箭头是一个塔它本身不在固定点但移动预定路径并具有预定目标。

关于这个问题的一些想法。但要点是,你在屏幕上看到的只是内部游戏状态的代表,而不是“现实世界”。