游戏开发-更新方法和状态模式
Game development - Update method and State pattern
对于我的游戏,我使用状态模式来处理我的屏幕。屏幕需要更新和渲染每一帧。并且游戏循环在 Game class.
中
但我还需要实体中的更新和渲染方法 class。我应该在 Screen 和 Entity class(例如 FrameProcess)中使用接口吗?或者我可以这样离开吗(见图)?
OOP 的最佳实践是什么?有什么模式吗?
这个问题的基本UML:
这取决于您在本文中所说的 "Entity" 是什么意思。如果一个实体涵盖所有可渲染和可更新的内容,那么为两者创建一个虚函数就可以了(如果您计划派生其他类型的实体,如车辆或武器)。如果您有实体以外的其他可渲染和可更新类型,我认为接口将是更好的选择。
您最好查看 https://gamedev.stackexchange.com/ 以获取有关 gamedev 的进一步问答。
我会为 Entity
class 中的 update()
和 render()
方法创建纯虚函数,并让从它继承的 classes 定义他们自己的行为将使系统以多态方式运行。然后在 Game
class 或其他类型的处理程序 class 中,根据系统的当前状态调用 update()
和 draw()
方法,系统使用 State 来决定它模式。
以非常清晰的方式详细介绍了状态模式及其示例用法
对于我的游戏,我使用状态模式来处理我的屏幕。屏幕需要更新和渲染每一帧。并且游戏循环在 Game class.
中但我还需要实体中的更新和渲染方法 class。我应该在 Screen 和 Entity class(例如 FrameProcess)中使用接口吗?或者我可以这样离开吗(见图)?
OOP 的最佳实践是什么?有什么模式吗?
这个问题的基本UML:
这取决于您在本文中所说的 "Entity" 是什么意思。如果一个实体涵盖所有可渲染和可更新的内容,那么为两者创建一个虚函数就可以了(如果您计划派生其他类型的实体,如车辆或武器)。如果您有实体以外的其他可渲染和可更新类型,我认为接口将是更好的选择。
您最好查看 https://gamedev.stackexchange.com/ 以获取有关 gamedev 的进一步问答。
我会为 Entity
class 中的 update()
和 render()
方法创建纯虚函数,并让从它继承的 classes 定义他们自己的行为将使系统以多态方式运行。然后在 Game
class 或其他类型的处理程序 class 中,根据系统的当前状态调用 update()
和 draw()
方法,系统使用 State 来决定它模式。