0

我正在用 AS3 制作游戏,灵感来自 Mushihimesama(iOS 上的 Bug Princess)、Dodonpachi 和东方系列等游戏。它主要围绕着让玩家一次躲避大量子弹(有时数以百计),同时击落大量敌人和老板。

我游戏中的每个“子弹”都包含几个参数,包括起始位置、x 速度、y 速度、运动行为、颜色和大小。“发射”这些子弹的每个函数都接受一些参数,例如子弹来自的点、发射的初始角度、发射哪些子弹、发射多少、发射多快、何时停止发射。

我的方法的一些重大限制是子弹必须来自一个点,它们的起点不能在 x 或 y 上偏移,每个子弹都必须遵循指定的路径并以指定的方式运行,并且它们不能添加到没有父母的阶段。

如果有人了解这些游戏以及创建类似“火”功能的最佳方法,我将非常感谢您的建议。

编辑:关于这个游戏的另一个可能重要的事情是子弹都是用代码绘制的。

4

2 回答 2

0

您可能想要进行一些重构,因为在一个类中拥有一堆公共函数并传递这么多参数似乎不是一个易于管理的解决方案。

我将首先创建一个ShotPattern基类或接口,并为每种类型或类别的镜头模式扩展或实现它的类。如何以及何时发射子弹以及发射何种子弹的逻辑将由ShotPattern. ShotPattern也可以在发射后影响s Bullet,改变它们的方向或速度,甚至产生更多Bullet的 s 以产生分裂效果。

s的构造函数ShotPattern仍然可以接受一些参数;目标只是减少重复并将大部分子弹生成逻辑保留在实例内部。func您的函数中的参数FireAroundArc很聪明,可以通过创建ShotPattern需要其他ShotPatterns 作为参数的 s 来使用相同的想法。

an 的每个实例都Enemy应该跟踪它ShotPattern的 s,而后者又跟踪它们Bullet的 s;这将允许清除某些敌人发射的子弹,并且子弹创建模式可以随着敌人移动。

在实际设计敌人的攻击模式方面,有很多可能性,这是一个非常开放的问题。拥有一个坚实的架构很重要,它可以让你增加更多的复杂性,而不必更改太多现有的代码,但是创建有趣、多样和具有挑战性的模式的一般问题超出了 Stack Overflow 问题的范围。

于 2012-06-12T20:12:57.360 回答
0

一种解决方案是创建一个ShotManager类,该类可以有一个方法,该方法Shoot采用类型参数,Bullet其中包含有关子弹类型和轨迹的信息。在ShotManager类中,您可以根据子弹的类型更新子弹的位置。

子弹的绘制将通过读取当前子弹的列表和它们的位置来单独处理,并将它们ShotManager与一些Sprites或位图绘图相匹配。

于 2012-06-10T23:32:08.097 回答