xna 4.0 -在Visual c#和xna中复制精灵数组

本文关键字:xna 复制 精灵 数组 Visual | 更新日期: 2023-09-27 17:54:46

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

现在我想随机分配7张牌给游戏开始时的4个玩家。所以我创建了一个随机数,然后将这个随机数上的牌分配给玩家。

    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]"));
            } 

xna 4.0 -在Visual c#和xna中复制精灵数组

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

u[i]=Content.Load<Texture2D>(Allcards[r]);
    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());
                } 
            }

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

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