如何进行游戏关卡切换

时间:2013-08-21 20:03:38

标签: macos opengl logic game-loop

从渲染区域切换到3D游戏中不同场景/区域的最佳方法是什么?

假设你有一个角色并且他移动到一个新区域,你将如何卸载该区域并加载新区域。您是否只使用不同的加载调用加载渲染功能,只有在它们落入某些参数时才加载它们,或者您是否为每个区域创建枚举器,并在卸载当前数据后使用类似switch语句切换到新区域区域?

我总是在我为业余爱好制作的小游戏中创造了非常糟糕的过渡,它通常会在某个时间点杀死我的表现。

1 个答案:

答案 0 :(得分:1)

使用enum或/和switch / case不是很灵活。

你可以简单地使用一个函数,例如load_area(i)来卸载先前的级别/区域,然后加载级别i(它可以使用智能资源管理器,如下所示) Andon M. Coleman)。

您应该将资源处理与游戏逻辑和引擎分开。例如,渲染系统应该显示当前加载的可绘制资源,而不是循环遍历枚举并选择要渲染的场景。

您应该尽量减少卸载/装载阶段;根据游戏的不同,您可以通过使用类似LOD(详细程度)的管理器来完全避免离散转换,该管理器根据游戏的当前状态动态更新资源。