游戏开发-更新方法和状态模式

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 来决定它模式。

顺便说一句,它在 http://gameprogrammingpatterns.com/state.html

以非常清晰的方式详细介绍了状态模式及其示例用法