我正在研究一个微型游戏引擎的屏幕管理器,到目前为止,我找不到适合每个屏幕都使用“blob”来管理屏幕对象的解决方案。在需要一个控制器中的可渲染对象列表的情况下,blob是否可容忍?游戏画面管理
游戏画面管理
回答
我会考虑在这种情况下使用MVC pattern。否则,如果你不小心,很容易得到一堆意大利面代码,其中屏幕代码到达游戏代码,反之亦然。
谢谢!这正是我迄今为止所要求的。我完全忘记了这种模式,但似乎我已经不知何故潜意识地将它嵌入代码中。谢谢你给我指导,这就是我想要的! – Johnny 2011-05-21 05:52:00
我最近编写了一些你可能称之为“屏幕管理器”的东西。
我开始时的想法是,无论我做什么游戏,渲染系统在渲染(如何管理硬件)方面都将基本相同。变化的东西是呈现的东西,以及如何绘制它(我想要一个盒子,一个圆圈或一个位图......代表什么......等等)。
所以基本上,“游戏状态”负责知道如何渲染自己,并且在从屏幕管理器或图形系统给出渲染表面时应该这样做(它也应该负责其他事情,例如知道输入,物理等行为本身)。
我的GraphicsSystem对象单身,这被称为是这样实现的:)
GameState gs;
Graphics::System().Init(DOUBLE_BUFFER, 640, 480);
...
while(still_looping) {
...
// When it is time to render:
Graphics::System().RenderGameState(&gs);
}
怎么样,你要问,图形::系统(单知道如何渲染游戏州?它知道,因为比赛状态从图形系统暴露的监听器继承了......
//within GraphicsSystem.h...
class BaseRenderer
{
public:
virtual void Render(BITMAP *render_surface) = 0;
};
//GameState defined with:
class GameState : public BaseRenderer
{
public:
void Render(BITMAP *render_surface);
...
可以与几乎所有的子系统做到这一点......(很可能不是时机,因为它需要在比赛中循环)。
为什么单身?那么,它是C++,我假设只有1个屏幕或图形子系统来渲染。我不确定您是否使用多个屏幕,或者手机或控制台。另一种方式是将图形系统作为静态全局变量存放在一个单独的文件中,仅给出文件范围,并在该文件中具有访问函数(我的旧C方法)。
关键虽然是封装。让你的屏幕管理器管理硬件。让你的游戏状态决定如何表达自己。
如果这没有理解,请清除您的问题,我可以编辑答案。
你的答案很有趣,虽然我确实已经设置了我的代码(并在这一点上工作),但我试图得到一个想法是一个好主意或不是,如果不是,你将如何管理当前呈现的对象。例如迈克所说的将是我的问题的答案。 – Johnny 2011-05-21 05:47:40
- 1. Android游戏启动画面
- 2. XNA游戏状态管理
- 3. 重画不更新游戏画面
- 4. 向游戏资源管理器添加游戏
- 5. 统一游戏画面模糊
- 6. 桌面游戏中的UIView动画
- 7. 设置在cocos2d游戏画面
- 8. “Drag'n'Drop”游戏动画
- 9. JavaScript游戏中的鼠标管理
- 10. iPad的游戏时间管理
- 11. 游戏中的等级管理
- 12. 在游戏中管理大图像
- 13. 在cocos2d中管理游戏阶段
- 14. 在面向对象的游戏中管理物品
- 15. 游戏精灵动画
- 16. MVC游戏模式:动画?
- 17. iOS动画2D游戏
- 18. 2D游戏动画android
- 19. android ImageView vs游戏画布
- 20. 复位HTML5画布游戏
- 21. 实用游戏动画?
- 22. 2d游戏物理?
- 23. Pygame贪吃蛇游戏,上课画画
- 24. 检查用户是否是管理员/游戏管理员[库MySQLi]
- 25. 游戏用户界面HUD
- 26. iPhone甲板游戏界面
- 27. 制作游戏面板
- 28. Java侧面滚动游戏
- 29. iOS桌面游戏架构
- 30. 游戏界面设计
Blob?原谅我,但你是什么意思blob? – Bart 2011-05-19 13:32:15
http://en.wikipedia.org/wiki/God_object – Johnny 2011-05-19 13:35:03
每个屏幕都必须由不同的所需资源管理组件组成,因此在您的情况下,每个屏幕都可以有一个可渲染的对象管理器对象,它封装并管理所有的可兑换物品,是否可靠的扑杀等等。我不太明白你在寻找什么答案,你是否想要一个适合你的屏幕和管理的结构,或者你想知道你是否可以管理它? – 2011-05-19 13:47:26