C# 创造无限繁殖的敌人

C# 创造无限繁殖的敌人,c#,xna,C#,Xna,由于这只是我的第二个游戏,我仍然有点不确定如何持续创建和使用对象的新实例。我知道在actionscript中有一种方法可以创建一个新的实例,而不给它命名,然后循环遍历某种列表。但我想知道在c#中使用xna的最佳方法是什么。如果有人能提供一个简单的代码示例,我们将不胜感激 谢谢我不知道XNA的具体情况,但C#中有很多收藏可以使用。最有趣的是提供强类型列表(即无需强制转换)的泛型列表。其他选项可能是(如果您想给它们一些名称,但也希望能够轻松地循环它们,或者如果您需要能够通过某个键快速找到单个实例)

由于这只是我的第二个游戏,我仍然有点不确定如何持续创建和使用对象的新实例。我知道在actionscript中有一种方法可以创建一个新的实例,而不给它命名,然后循环遍历某种列表。但我想知道在c#中使用xna的最佳方法是什么。如果有人能提供一个简单的代码示例,我们将不胜感激


谢谢

我不知道XNA的具体情况,但C#中有很多收藏可以使用。最有趣的是提供强类型列表(即无需强制转换)的泛型列表。其他选项可能是(如果您想给它们一些名称,但也希望能够轻松地循环它们,或者如果您需要能够通过某个键快速找到单个实例)

还有很多其他的,但这些是最常见的

示例代码(假设您有一个名为敌方的类):


XNA通过不断调用Update和Draw来提供无限的游戏循环。正如Chris所说,将对象保存在一个列表中,每次需要添加一个新对象时,在Update方法中实例化它。然后让Update和Draw方法遍历列表,并分别调用每个对象的Update和Draw方法。

您是否正在寻找类似以下内容:

// A sample enemy class
class Enemy
{
    public int EnemyStrength { get; set; }

    public Enemy(int strength)
    {
        EnemyStrength = strength;
    }
}

class Program
{
    static void Main(string[] args)
    {
        // A List to hold all the enemies
        List<Enemy> Enemies = new List<Enemy>();

        // Create some enemies
        for (int i = 0; i < 5; i++)
        {
            Enemies.Add(new Enemy(i));
        }

        // Display the strength of them all.
        foreach (Enemy enemy in Enemies)
        {
            Console.WriteLine(enemy.EnemyStrength);
        }

    }
}
//一个示例类
阶级敌人
{
public int-EnemyStrength{get;set;}
公敌(国际兵力)
{
敌人的力量=力量;
}
}
班级计划
{
静态void Main(字符串[]参数)
{
//容纳所有敌人的名单
列表敌人=新列表();
//制造一些敌人
对于(int i=0;i<5;i++)
{
添加(新敌人(i));
}
//展示他们所有人的力量。
foreach(敌人中的敌人)
{
控制台。书写线(敌人。敌人的力量);
}
}
}

重要的一点是敌人。Add(new敌军(i))可以实例化敌人并将其添加到列表中,而不将其分配给命名变量,我认为这是您要问的问题。

使用是一个良好的开端,因为它可以节约资源。

使用“new”实例化有什么问题关键字?@Fantius我想他的意思是把它放在一个列表中供以后使用,而不是分配给一个特定的变量。我知道你用“new”来创建一个新实例/分配内存,但因为我习惯于创建一些具有我给它们的名称的对象,我不完全确定如何创建和管理无限多的对象。请使用诸如List、Dictionary、HashSet之类的通用集合类。有很多。
foreach (Enemy badguy in myList)
{
    badguy.Update();
}
// A sample enemy class
class Enemy
{
    public int EnemyStrength { get; set; }

    public Enemy(int strength)
    {
        EnemyStrength = strength;
    }
}

class Program
{
    static void Main(string[] args)
    {
        // A List to hold all the enemies
        List<Enemy> Enemies = new List<Enemy>();

        // Create some enemies
        for (int i = 0; i < 5; i++)
        {
            Enemies.Add(new Enemy(i));
        }

        // Display the strength of them all.
        foreach (Enemy enemy in Enemies)
        {
            Console.WriteLine(enemy.EnemyStrength);
        }

    }
}