gpt4 book ai didi

c# - 播放时加载纹理

转载 作者:行者123 更新时间:2023-11-30 17:06:56 24 4
gpt4 key购买 nike

对于我的 2D 游戏:
播放时,我必须加载一些大的 texture2D(2000x2500 像素)并卸载其他一些。
当然,我想在没有游戏/绘图卡住的情况下加载和卸载 texture2D(或较小的......):x我不知道这是否可能。

我已经在绘制“加载屏幕”时使用了一个线程来加载一些纹理

//thread Loading
ThreadStart th_loadingScreen = delegate { DisplayLoading(LoadingScreen); };
new Thread(th_loadingScreen).Start();

但我认为这是非常不同的。

当然,我尝试了一些东西:

private void LoadUnload()
{
for (int j = 0; j <= NbrRow; j++)
for (int i = 0; i <= NbrCol; i++)
{
if(somethingTrue)
{
ThreadStart th_LoadInGame = delegate
{
LoadInGame(i, j, TextureStringPathToLoad);
};
new Thread(th_LoadInGame).Start();
}
}
}

但是我有点冻僵了。

而且,我知道如何卸载内容,但我不知道如何卸载单个加载的纹理:x

最佳答案

无法卸载 ContentManager 对象中的单个元素。所以,我所做的是创建多个 ContentManager 并将我需要的内容拆分到它们之中。例如,这样我就可以卸载一个,而将其他的保留在内存中。

至于您看到的小卡住,线程本身并不能保证不会出现打嗝等情况。我会弄乱 ThreadPriority属性(property);也许尝试将其设置得更低,看看会发生什么。然而,即使这样也不能保证。来自文章:

Operating systems are not required to honor the priority of a thread.

关于c# - 播放时加载纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14965353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com