你好,我试图切换到游戏开发领域作为一个程序员(我之前是网页开发者)。我是新手,正在开发我的第一个几项项目。这里的目标是同时学习最佳实践,以及为我的 portfolios 准备项目。

目前,我正在开发一个无尽跑酷游戏,避开障碍物并收集金币。我试图引入一个能量系统,让玩家在暂时获得各种权利和好处。

正如我提到的,我试图以优先学习最佳实践和架构,遵循合适的面向对象编程实践和 SOLID 原则(至少在实施方面我是新手)。我想学习写出易于理解、可扩展和维护的代码。

我已经想出了一个初步的想法来处理我的能量系统,我需要一些回顾和建议。

我提出的能量类型可能会分为不同的原型,需要支持。目前我有两个原型

  1. 能量只会在其持续时间过期时自然过期(并且不能在此之前被解除)
  2. 能量可以在其持续时间未到之前被解除,如果满足某些条件(例如,盾牌能量在玩家被击中时解除)

我想出了一个方法来实现这一点,但我不确定这是理想的方法。

我的当前想法:

  1. 将有一个 IPowerUp 接口,包含所有原型中通用的属性
  2. 每个原型将由一个抽象类表示,该类将扩展 IPowerUp。每个这些基础抽象类(表示原型)将有泛型方法(例如,激活、自然过期、强制解除条件等)的逻辑,所有类型的能量都会使用这些特定原型下的方法
  3. 将有一个 PowerUpManager 脚本来管理能量

我是否有正确的思维方式?请提供改进和细节的建议,以帮助我了解如何思考这个问题。任何帮助都感激不尽。感谢。