Questions tagged «shoot-em-up»

6
自上而下射击中的敌人产卵方法
我正在使用类似于DoDonPachi,Ikaruga等的自上而下的射击游戏。通过玩家能够在相机可见区域内移动,相机会自动处理相机在整个世界中的移动。 一路上,敌人被脚本脚本沿路径的特定点生成。尽管这听起来很简单,但我可以看到两种定义这些点的方法: 相机的位置:当相机经过这些点时产生“触发” 沿途时间:“ 30秒,产生2个敌人” 在这两种情况下,都将定义摄像机相对位置以及敌人的行为。 我的看法,定义这些要点的方式将直接影响“关卡编辑器”或您的工作方式。 一种方法比另一种方法有什么好处吗?

1
'Raiden 2'紫色激光背后的数学是什么?
激光的路径受用户输入和屏幕上出现的敌人的影响。这是一个视频,在5:00分钟时显示有问题的激光:Raiden II(PS)-1个循环清除-第2部分 更新 这是使用Inkscape进行的测试,飞船在底部,等离子攻击了前4个敌人。似乎有一种模式。我先移动了船,然后将船把从其移开,形成了45°角,然后在尝试拟合曲线时,我发现了平行船把的图案,并一直沿用直至到达最后一个敌人为止。 更新,2012年5月26日:我使用贝塞尔曲线启动了XNA项目,仍然需要进行一些工作,下周将更新问题。敬请关注 ! 更新:5/30/2012:确实似乎他们使用的是贝塞尔曲线,我想我将能够复制/模仿这种等级的等离子体。自上次以来,我发现了两个新主题:弧长,龙格现象,第一个应该帮助在Bézier曲线上进行线性运动,第二个应该帮助优化顶点数量。下次我会放一个视频,以便您看到进度8-)

2
如何在射击游戏中实施聪明的敌人?
想象一下一个非常简单的射击游戏,众所周知: 您是玩家(绿色)。您的运动仅限于X轴。我们的一个或多个敌人位于屏幕的顶部,他的移动也仅限于X轴心。玩家向敌人发射子弹(黄色)。 我想为敌人实施一种AI,该AI应该真正擅长避免玩家的子弹。我的第一个想法是将屏幕分成多个独立的部分,并为其分配权重: 有两种重量:“子弹重量”(灰色)是子弹施加的危险。子弹离敌人越近,“子弹重量”(0..1,其中1是最高危险)越高。没有子弹的车道的权重为0。第二权重是“距离权重”(灰绿色)。对于每条车道,我都会增加0.2移动成本(此值现在是任意的,可以调整)。 然后,我简单地添加权重(白色)并转到权重最低的通道(红色)。但是这种方法有一个明显的缺陷,因为它很容易错过局部最小值,因为最佳的去处只是在两个传入的子弹之间(如白色箭头所示)。 所以这就是我要寻找的: 即使在没有没有施加子弹威胁的地方的情况下,也应该找到解决方法。 敌人可以通过选择最佳(或几乎最佳)解决方案来可靠地躲避子弹。 算法应该能够考虑子弹的移动速度(因为它们可能以不同的速度移动)。 调整算法的方法,以便可以应用不同级别的难度(对超级智能敌人是愚蠢的)。 算法应该允许不同的目标,因为敌人不仅想躲避子弹,还应该能够射击玩家。这意味着在躲避子弹时,应该优先选择敌人可以向玩家射击的位置。 那么您将如何解决呢?与这种类型的其他游戏相反,我只希望有几个但非常“熟练”的敌人,而不是愚蠢的敌人。

5
射击游戏中的敌人进化
有没有射击游戏中的敌人实际上在进化,以回应他们对玩家的相对成功? 通过进化,我的意思是每个敌人都有一些编码其行为的遗传信息。持续时间更长或造成更大伤害的敌人可以混合它们的基因来制造新的敌人。这样,敌人将变得更好地适应特定玩家。

3
如何存储shmup级别?
我正在开发2D shmup(即Aero Fighters),我想知道存储关卡的各种方法是什么。假设在自己的xml文件中定义了敌人,那么您将如何定义何时在关卡中产生敌人? 是基于时间吗?更新?距离? 目前,我基于“关卡时间”(关卡运行的时间量-暂停不会更新时间)来执行此操作。这是一个示例(序列化由XNA完成): <?xml version="1.0" encoding="utf-8"?> <XnaContent xmlns:level="pekalicious.xanor.XanorContentShared.content.level"> <Asset Type="level:Level"> <Enemies> <Enemy> <EnemyType>data/enemies/smallenemy</EnemyType> <SpawnTime>PT0S</SpawnTime> <NumberOfSpawns>60</NumberOfSpawns> <SpawnOffset>PT0.2S</SpawnOffset> </Enemy> <Enemy> <EnemyType>data/enemies/secondenemy</EnemyType> <SpawnTime>PT0S</SpawnTime> <NumberOfSpawns>10</NumberOfSpawns> <SpawnOffset>PT0.5S</SpawnOffset> </Enemy> <Enemy> <EnemyType>data/enemies/secondenemy</EnemyType> <SpawnTime>PT20S</SpawnTime> <NumberOfSpawns>10</NumberOfSpawns> <SpawnOffset>PT0.5S</SpawnOffset> </Enemy> <Enemy> <EnemyType>data/enemies/boss1</EnemyType> <SpawnTime>PT30S</SpawnTime> <NumberOfSpawns>1</NumberOfSpawns> <SpawnOffset>PT0S</SpawnOffset> </Enemy> </Enemies> </Asset> </XnaContent> 每个敌人元素基本上都是特定敌人类型的浪潮。该类型在EnemyType中定义,而SpawnTime是该波形应出现的“级别时间”。NumberOfSpawns和SpawnOffset分别是显示的敌人数和两次刷新之间所花费的时间。 这可能是一个好主意,或者可能还有更好的主意。我不确定。我希望看到一些意见和想法。 我有两个问题:正确产生一个敌人并创建一个关卡编辑器。关卡编辑器的问题是一个完全不同的问题(我可能会在以后的:P中发布)。 至于正确生成,问题在于我的更新时间可变,因此我需要确保不会错过敌人的生成,因为生成偏移量太小,或者更新花费了更多时间。我在很大程度上修复了它,但是在我看来,问题出在我如何存储水平上。 那么,有什么想法吗?注释? 先感谢您。
12 levels  data  xml  shoot-em-up 

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.