0

我已经使用 Monogame 一段时间了,我只是想知道加载我的内容的最佳方式是什么?假设我有一个间隔系统不断在屏幕上创建对象,所以我应该在游戏类中加载对象的精灵并将精灵变量放入构造函数中,还是应该将内容变量放入对象构造函数中并从对象内?

顺便说一句,我的意思是我尽量保持帧速率并使用更少的内存,提前谢谢!

4

2 回答 2

0

您有 3 种不同的解决方案,每种解决方案都适合不同类型的游戏。

Load everything in LoadContent

这将导致更长的初始启动时间,但是在加载完所有内容后,您将不必再等待任何内容。但是请记住,这仅适用于俄罗斯方块、Arcanoid 或国际象棋等小型游戏。通常没有很多内容的游戏。请记住,您加载的内容越多,消耗的内存就越多。

Load everything needed for the current scene

这是大多数游戏所做的,因为您不会为从未使用过的场景加载数据,也不会为尚未访问的场景加载数据。

Load everything needed for the current scene (Extended)

像以前的答案一样,但有一个小转折。如果可能,在显示其他内容的同时加载内容。例如,一旦玩家完成了完成一个场景的最后一步,就开始加载下一个场景。

Arcanoid 示例:一旦球击中最后一个块(或者如果你很勇敢,即使你可以计算出球将击中最后一个块),就开始加载下一个场景的内容。在球飞向最后一个街区时加载此负载,同时显示当前场景的得分(时间、死亡、奖金等)

并且如果玩家在场景加载之前关闭对话,在数据加载完成时显示另一个加载场景。这样,加载时间可能只有 1-2 秒,而不是 10 秒。

请记住在后台线程中执行所有这些加载。

于 2015-02-16T15:04:33.730 回答
0

帧速率的最佳方法是在游戏循环开始之前加载它。但是减少内存的最佳方法是在您需要它并在完成后将其处理掉。不一定相互包容...选择你的毒药。

于 2015-02-14T01:52:10.883 回答