我正在为移动设备开发2D太空游戏,但是它确实非常复杂,我的解决方案确实令人困惑,并且会产生很多重复的代码段。
我有一个世界一流的课程,其中有多个不同对象的清单,例如:
List<Enemy> enemys;
List<Projectile> projectiles;
List<Collectable> collectables;
List<Asteroid> asteroids;
List<Effect> effects;
..
每个列表都会根据世界一流水平进行更新。但是还不止如此。每个敌人都有一个引擎列表,以及一个被敌人更新的武器大佬列表。现在,每个引擎都将一些射击效果添加到世界列表“效果”中,并且每个武器租赁商都将弹丸添加到世界列表“弹丸”中。所有这些类都有不同的参数,因此我需要为每个类额外的更新和渲染功能。
至少它们都是“ GameObject”的子元素,“ GameObject”为它们提供了基本的东西,例如位置,速度和加速度矢量,边界多边形以及诸如applyForce和有限状态机之类的函数
有没有更好或更通用的方法可以做到这一点?就像一个包罗万象的类,其中包含所有不同对象的所有可能的参数和方法。(我认为这会产生更加混乱的代码)