xna - 管理不同的类 MonoGame XNA,
问题描述
我正在 MonoGame 中制作具有多个状态的游戏。在同一个班级中管理所有这些是非常复杂的。有没有办法在不同的类之间用不同的对象和属性来划分这些状态?我想管理相同的模块:绘制、更新、加载内容,但专注于游戏的其他状态。
解决方案
如果不同的状态是指不同的游戏屏幕(菜单、主游戏屏幕、地图),您可以创建一个游戏屏幕类,然后包含当前状态所需的功能并覆盖 Draw、Update 等方法。您可以为每张地图创建不同的游戏画面,或者只创建一个地图画面,然后从外部加载地图等。
然后创建一个类来管理当前游戏屏幕,该类具有更改活动游戏屏幕的方法(通过激活器创建新实例并将其设置为当前屏幕对象)并通过覆盖调用当前屏幕更新和绘制方法。然后主游戏循环将调用屏幕管理器,而不必担心知道当前状态。
我发现这个特定的教程系列非常有用,因为它解释了如何创建游戏屏幕、屏幕管理器等:https ://www.youtube.com/watch?v= agt9-J9RPZ0(C# Monogame RPG Made Easy Tutorial by CodingMadeEasy )。
推荐阅读
- python - 错误 asyncpg.exceptions.InvalidPasswordError:用户“steamtrader_pguser”的密码验证失败
- python - python包名中的破折号
- logstash - 使用 syslog-ng 将日志转发到 logstash 时如何保持时间戳?
- swift - 无法使用“@available”将具有关联值的枚举案例标记为可能不可用
- solidity - 从 ERC20 智能合约中移除不受信任的代币
- php - Symfony / API / PATCH / multipart/form-data
- python - Python - 批量重命名为时间戳
- ruby-on-rails - 仅允许用户通过单击更改整数输入
- flutter - 如何制作一个具有参数的按钮对象,该参数可以在颤动中动态更改 iconData?
- solr - Hybris 多词产品搜索无法正常工作