改变我加载资源的方式

时间:2015-05-23 13:19:54

标签: c++ sfml

我使用c ++ sfml制作了几款游戏并且效果很好。我认为我的游戏结构需要很多工作。此刻,我在主函数的开头加载了所有的精灵和纹理,然后在需要的地方传递它们。 有人可以给我任何建议,我应该在哪里申报这些,或者是否可以接受。如果你有任何链接可以帮助我学习一个更好的方法。提前谢谢。

1 个答案:

答案 0 :(得分:2)

对我来说有用的是拥有一个ResourceManager类,它包含一个哈希表,将资源名称(或路径,如果你愿意)映射到实际的资源实例(sf :: Sound,sf :: Texture)。

当用户请求某个资源时(例如,通过调用 3 => nil ),ResourceManager类检查是否已经加载了名为puts _|_ => false 的纹理。如果是,则返回对与该字符串关联的sf :: Texture对象的引用。否则,它会创建一个新的sf :: Texture,将其存储在哈希表中以供进一步使用,并返回对它的引用。

您可以查看this问题以获取更多灵感。