改变我加载资源的方式
Change the way i load resources
我使用 C++ sfml 制作了一些游戏,它们运行良好。我认为我的游戏结构需要大量工作。目前我在我的主要功能开始时加载了我所有的精灵和纹理,然后将它们传递到任何需要的地方。
有人可以给我任何关于我应该在哪里申报这些的建议,或者它是否可以接受。如果您有任何链接可以帮助我学习更好的方法,那就太好了。提前致谢。
对我有用的是有一个 ResourceManager class,它包含一个散列 table 将资源名称(或路径,如果你愿意的话)映射到实际的资源实例(sf::Sound , sf::Texture).
当用户请求某个资源时(例如,通过调用 ResourceManager::getTexture("res/texture.png")
),ResourceManager class 检查名称为 "res/texture.png"
的纹理是否已经加载。如果是这样,它 returns 对与该字符串关联的 sf::Texture 对象的引用。否则,它会创建一个新的 sf::Texture,将其存储在散列 table 中以供进一步使用,并 returns 对其进行引用。
您可以查看 this 问题以获得更多灵感。
我使用 C++ sfml 制作了一些游戏,它们运行良好。我认为我的游戏结构需要大量工作。目前我在我的主要功能开始时加载了我所有的精灵和纹理,然后将它们传递到任何需要的地方。 有人可以给我任何关于我应该在哪里申报这些的建议,或者它是否可以接受。如果您有任何链接可以帮助我学习更好的方法,那就太好了。提前致谢。
对我有用的是有一个 ResourceManager class,它包含一个散列 table 将资源名称(或路径,如果你愿意的话)映射到实际的资源实例(sf::Sound , sf::Texture).
当用户请求某个资源时(例如,通过调用 ResourceManager::getTexture("res/texture.png")
),ResourceManager class 检查名称为 "res/texture.png"
的纹理是否已经加载。如果是这样,它 returns 对与该字符串关联的 sf::Texture 对象的引用。否则,它会创建一个新的 sf::Texture,将其存储在散列 table 中以供进一步使用,并 returns 对其进行引用。
您可以查看 this 问题以获得更多灵感。