我正在AS3中制作游戏,其中包括Mushihimesama(iOS上的Bug Princess),Dodonpachi和Touhou系列等游戏的巨大灵感。它主要围绕让玩家同时躲避大量子弹(有时数以百计),同时击落大量敌人和老板。
我游戏中的每个“子弹”都有几个参数,包括起始位置,x速度,y速度,移动行为,颜色和大小。每个“射击”这些子弹的功能都会获取参数,例如子弹来自的点,射击的初始角度,射击的子弹,射击的数量,射击的速度,停止射击的时间。
我的方法的一些重大限制是,子弹有来自单个点,它们的起始点不能在x或y上偏移,每个项目符号必须遵循指定的路径并且表现为指定的方式,如果没有父级,则无法将它们添加到舞台中。
如果有人了解这些游戏以及创建类似“火”功能的最佳方式,我将非常感谢您的建议。
编辑:关于这个游戏的另一个可能重要的事情是子弹都是用代码绘制的。
答案 0 :(得分:0)
一种解决方案是创建一个ShotManager
类,该类可以有一个方法Shoot
,该方法采用类型为Bullet
的参数,其中包含有关子弹类型和轨迹的信息。在ShotManager
类中,您可以根据类型更新项目符号的位置。
子弹的绘制将通过从ShotManager
读取当前项目符号及其位置的列表并将其与某些Sprites
或位图图形匹配来单独处理。
答案 1 :(得分:0)
你可能想要进行一些重构,因为在一个类中有一堆公共函数并传递许多参数似乎不是一个可管理的解决方案。
我首先要创建一个ShotPattern
基类或接口,并为每种类型或类别的镜头模式扩展或实现它。 ShotPattern
将处理如何以及何时发射子弹以及发射什么样的子弹的逻辑。 ShotPattern
也可能会在Bullet
被触发后影响Bullet
,改变方向或速度,甚至产生更多ShotPattern
来创建分裂效果。
func
的构造函数仍然可以使用一些参数;目标只是减少重复并将子弹生成逻辑的更大部分保留在实例内部。 FireAroundArc
函数中的ShotPattern
参数非常聪明,可以通过创建需要其他ShotPattern
s作为参数的Enemy
来使用相同的构思。
ShotPattern
的每个实例都应该跟踪其Bullet
,然后跟踪{{1}} s;这将允许清除某些敌人发射的子弹,并且子弹创建模式可以与敌人一起移动。
在实际设计敌人攻击模式方面,有很多可能性,这是一个非常开放的问题。拥有可靠的体系结构非常重要,并且可以让您在不必更改现有代码的情况下添加更多复杂性,但是创建有趣,多样且具有挑战性的模式的一般问题超出了Stack Overflow问题的范围。