在Visual C#和XNA中复制精灵数组

时间:2013-01-20 07:11:47

标签: c# xna-4.0

我正在使用Visual C#2010和XNA 4.0开发Uno纸牌游戏。我已经创建了一个包含所有Uno Cards的108个元素的数组作为数组元素。

现在我想在游戏开始时为4位玩家中的每一位分配7张随机牌。 所以我创建了一个随机数字,然后将该卡片分配给一个玩家。

    for (int i = 0; i < 7; i++)
        {
            int r = rnd.Next(108);
            if (vis[r] != 1)  //vis[] is an array to checkk visited elements
            {

              //  u[i] = Content.Load<Texture2D>("toString.Allcards[r]");
                u[i]=Content.Load<Texture2D>(ToString("Allcards[r]"));
            } 

这不起作用,请帮忙。

3 个答案:

答案 0 :(得分:0)

假设“Allcards [r]”保存卡片的纹理(即Allcards [1] ==“Ace of Spades”,并且你的项目中有一个名为Ace of Spades的纹理),你可能会想要这样:< / p>

u[i]=Content.Load<Texture2D>(Allcards[r]);

答案 1 :(得分:0)

    for (int i = 0; i < 7; i++)
            {
                int r = rnd.Next(108);
                if (vis[r] != 1)  //vis[] is an array to checkk visited elements
                {

                  //  u[i] = Content.Load<Texture2D>("toString.Allcards[r]");
                    u[i]=Content.Load<Texture2D>(Allcards[r].ToString());
                } 
            }

答案 2 :(得分:0)

您希望Content.Load<Texture2D>(Allcards[r]);假设Allcards是一个字符串数组。如果Allcards是Texture2D对象的数组,那么Content.Load是不必要的,因为你已经加载了它;你可以使用u[i] = Allcards[r]

话虽如此,你可能不想只为玩家提供纹理;你会想给他们真正的卡片。我建议创建一个Card类并为其分配纹理,以及一些有用的信息,如ID,以及一些属性来解释它的作用。