自上而下射击中的敌人产卵方法


20

我正在使用类似于DoDonPachiIkaruga等的自上而下的射击游戏。通过玩家能够在相机可见区域内移动,相机会自动处理相机在整个世界中的移动。

一路上,敌人被脚本脚本沿路径的特定点生成。尽管这听起来很简单,但我可以看到两种定义这些点的方法:

  1. 相机的位置:当相机经过这些点时产生“触发”
  2. 沿途时间:“ 30秒,产生2个敌人”

在这两种情况下,都将定义摄像机相对位置以及敌人的行为。

我的看法,定义这些要点的方式将直接影响“关卡编辑器”或您的工作方式。

一种方法比另一种方法有什么好处吗?

Answers:


7

我建议将生成位置实际放置在背景地图上,作为从某种地图编辑器中可见的节点。您可以用两个变量表示一个shmup生成:

  1. 首先可以看到它们的位置,最好将其可视化为一个点
  2. 应当产生它们时与底部屏幕的距离。

然后,您可以将屏幕底部的距离可视化为从生成节点向下指向的垂直线(可以可视化为敌人的灰色版本或类似形式)。当屏幕底部触摸该行时,它将生成。这使您可以使用某种可视化编辑器完全完成所有敌人的编辑,并提供整个游戏流程的概览。


关于2)当然,在导出时,您必须对此进行反向编码(即,每行应该激活哪些生成点,因为使用此系统,您需要在生成某些可见点之前知道它们。)这的确是最合理的方式。
凯伊

1
注意,请确保使用的编辑器可以轻松地批量移动节点。设置shmup等级时,您将插入和移除敌人,并不断调整等级中间的时间,并且一次只能移动一个实体会杀死您。
ZorbaTHut 2010年

我喜欢这个主意,因为它确实可以使编辑工作变得非常容易,这总是有好处的
克里斯·沃特斯

7

只是,相机的生成位置可能会更灵活,因为您可以修改路径而不必担心大型多米诺骨牌效应。

如果您使用时间生成,那么添加或删除路径将是一个巨大的痛苦,因为您将不得不修改很多敌人生成。

我看到的另一个问题是调整摄像头速度。您是否真的要仅仅因为使照相机移动得更快或更慢而去调整敌人的生成?另外,您将需要在关卡中玩很多次,才能找到它们的生成时间或进行调整。


2

我强烈建议完全不要移动“相机”。始终将玩家和敌人考虑在相同的固定坐标空间中。敌人和背景滚动都应与独立的时间轴匹配。它使所有数学运算变得容易。


我一半同意你的看法。明确地说,整顿物理学是假的,并且基于飞船并未真正向前推进。就是说,这个问题仍然有效,因为您确实需要考虑使用摄像
Iain

确实,这不会使问题无效。现在仍然是时间与(虚拟)行驶距离的关系。向前移动播放器还是向后移动背景仅仅是一个概念层。此外,将它们去耦以简化数学运算可能会使其他事情变得更加困难,例如将敌人置于背景(炮塔)中,让它们避开背景物体或在背景中具有可碰撞对象。
Kaj 2010年

1

我去找相机位置。如果您要使敌人的路径与地图文件中的某些图形(例如沿着弯曲路径的敌人)相匹配,那么使用时间会变得非常困难。此外,它还允许您加快滚动速度而无需更改生成点。
缺点是加快滚动速度会使敌人更快。可以认为这是加号(加速将增加难度)或负号(滚动速度影响起搏速度)。


1

我也在从事太空射击游戏。我所做的是我使用了一个名为GameController的空游戏对象。添加了一个名为GameController.cs的脚本组件,用于控制生成部分,例如,

  • 存储生成点列表[数组]
  • 给每个敌人一个特定的体重和分数。如果体重较高,控制体重的产卵率很可能在每个级别中都有。
  • 然后每次检查“当前水平”并选择一个随机数,如果数字小于权重,则生成与敌人相关的东西。希望对您有所帮助。

http://www.youtube.com/watch?v=VqFJsU63GRo


0

我将它们放置在大地图背景上,并将其初始移动路径包括在该地图上。这样,以后我就可以有意义的方式更改摄像机路径,而不必分别更改路径和时间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.