首页 > 解决方案 > 管理不同的类 MonoGame XNA,

问题描述

我正在 MonoGame 中制作具有多个状态的游戏。在同一个班级中管理所有这些是非常复杂的。有没有办法在不同的类之间用不同的对象和属性来划分这些状态?我想管理相同的模块:绘制、更新、加载内容,但专注于游戏的其他状态。

标签: xnamonogame

解决方案


如果不同的状态是指不同的游戏屏幕(菜单、主游戏屏幕、地图),您可以创建一个游戏屏幕类,然后包含当前状态所需的功能并覆盖 Draw、Update 等方法。您可以为每张地图创建不同的游戏画面,或者只创建一个地图画面,然后从外部加载地图等。

然后创建一个类来管理当前游戏屏幕,该类具有更改活动游戏屏幕的方法(通过激活器创建新实例并将其设置为当前屏幕对象)并通过覆盖调用当前屏幕更新和绘制方法。然后主游戏循环将调用屏幕管理器,而不必担心知道当前状态。

我发现这个特定的教程系列非常有用,因为它解释了如何创建游戏屏幕、屏幕管理器等:https ://www.youtube.com/watch?v= agt9-J9RPZ0(C# Monogame RPG Made Easy Tutorial by CodingMadeEasy )。


推荐阅读