0

我做了一些研究(大约值一个小时),并且对这些塔防游戏的创建方式相对空白。一般来说,我认为如果我了解 TD 游戏中某些情况的处理方式,我可以很好地了解其他形式的安卓游戏。我有一些一般性的问题,希望各位聪明的人能给我一些见解,或者至少指出我可以获取一些信息的地方。

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

  2. 考虑到我的假设与#1 差不多,目标是如何处理的?如何处理射击动画 - 即发射箭头的塔实际上是否创建了一个箭头实体,该实体行进到预定目的地,一旦到达目的地,就会造成伤害或未命中,或者箭头只是动画并且命中/未命中/损坏是预先确定的一点?

考虑到它们是多么模糊和……口齿不清,这些可能是愚蠢的问题,但我不知道如何表达这个问题以获得我正在寻找的答案。基本上:当我创建一个塔防风格的游戏时,我是在创建一个具有实时相互影响的各个实体的虚拟世界,还是我在创建一个伪世界,只是一个背景事件的舞台?学习可以用来创建这样一个环境的概念的第一步是什么?

我敢肯定那里已经有一些框架或库已经包含了一堆预构建的东西来处理这类东西,但是使用别人的预制游戏对我来说并不完全是一个可靠的学习经验。那会教我如何使用那里的东西,我想了解它为什么在那里,它在哪里,并自己弄清楚如何解决。

4

1 回答 1

3

我认为您问题的症结在于图形是否在游戏的逻辑/模拟中发挥重要作用。如果不查看此类游戏的实际实现,我会严重打赌他们没有。

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

(另一种方法可能是将路径表示为分段函数/曲线系列,但确定下一步的数学将更加激烈。我可能更愿意咬紧牙关并如上所述绘制路径。)

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

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

  • 对于每个敌人,下一步是什么?也许它只在循环的每 N 次迭代中执行一次(对于慢速敌人),或者每次迭代需要 N 次(快速敌人)。
  • 对于每个塔,范围内有哪些敌人?我认为您必须遍历当前敌人的列表,或者您可以维护范围内的瓷砖列表并检查它们是否存在敌人。如果敌人在射程内,是否允许塔向它开火?(例如,每次迭代拍摄 N 次或每 N 次迭代拍摄一次)。如果它确实射击,则计算伤害并查看敌人是否还活着。

至于如何射出穿越时空的箭的问题,我认为这将是确定性的,但可能有几种方法。但是,它将是确定性的。您可以将屏幕上的动画延迟几次迭代,以便您可以动画化塔射箭时发生的事情,或者您可以计算箭头从现在开始拦截 N 次迭代的位置,基本上您的箭头是一个塔它自己的不是在一个固定的点而是移动一个预定的路径并有一个预定的目标。

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

于 2013-09-11T02:03:19.157 回答