XNA中的随机纹理

XNA中的随机纹理,xna,textures,Xna,Textures,好的,我有一个正在开发的游戏,我是XNA的新手(我使用的是4.0),我想做的是在每次生成敌人时都有一个不同的纹理 所以我有这些图片“image1.png”,“image2.png”等等。我希望它使用不同的纹理每次一个新的敌人是产卵,到目前为止,它只加载一个随机图像时,游戏运行,所以问题必须是,随机方法不更新每个产卵,而是在游戏开始时设置。我在网上搜索了很多,并尝试了一些我认为可行但没有希望的解决方案。。。这是我的密码 在LoadContent()中,我有以下代码: Random textureR

好的,我有一个正在开发的游戏,我是XNA的新手(我使用的是4.0),我想做的是在每次生成敌人时都有一个不同的纹理

所以我有这些图片“image1.png”,“image2.png”等等。我希望它使用不同的纹理每次一个新的敌人是产卵,到目前为止,它只加载一个随机图像时,游戏运行,所以问题必须是,随机方法不更新每个产卵,而是在游戏开始时设置。我在网上搜索了很多,并尝试了一些我认为可行但没有希望的解决方案。。。这是我的密码

LoadContent()
中,我有以下代码:

Random textureRandom = new Random();
            int skinRandom = textureRandom.Next(1, 4);
            string lamp = string.Concat("image", skinRandom.ToString());
            enemyTex = Content.Load<Texture2D>(lamp) as Texture2D; 
Random textureRandom=new Random();
int skinRandom=textureRandom.Next(1,4);
string lamp=string.Concat(“image”,skinRandom.ToString());
enemyTex=内容。负载(灯)为纹理2d;

如果我没记错的话,在初始化(Game.Initialize())加载游戏资源时,Game.LoadContent()方法只被调用一次。您可以强制游戏重新加载这些资源,但由于您不想重新加载所有资源,我建议您在LoadContent()方法中加载所需的所有图像,如下所示:

List texturePool=new List();
随机rng=新随机();
受保护的覆盖void LoadContent()
{
对于(int i=0;i<4;i++)
添加(Content.Load(“image”+i.ToString());
}
然后在敌人产卵之前,你可以通过从加载的池中选择一个来改变使用的纹理

enemyTex=texturePool[rng.NextInt(texturePool.Count)];

也许你可以将标题改为“XNA中的随机纹理”或类似的东西,因为你想在每次繁殖时而不是每次绘制时更改纹理,而且这种技术可以应用于更多的情况。

嘿,这是一个非常好的主意,尽管出于某种原因,它现在给了我一个黑屏。但我会玩弄它,这对大多数人来说肯定有用。如果我找到一个有效的解决方案,我会发布我的解决方案。谢谢