游戏中的敌人AI正在吃太多内存

时间:2015-10-04 15:02:06

标签: c# performance memory optimization ram

我需要帮助。我目前正在尝试制作一款游戏,到目前为止,我做得还不错。我遇到的唯一主要问题是添加敌人AI。没有人工智能,我的游戏只使用大约200-400mb的内存。当我制作AI时,游戏现在吃掉了2GB以上的RAM。对于简单的2D游戏来说,这太过分了。这是AI代码的示例(请假设所有必要的语法都在我的程序中。没有错误,因为我可以让它运行):

public void launch()
 {
enemyGen.Tick += enemyGen_Tick;// in charge of generating enemies
        enemyGen.Interval = 1000;
        enemyGen.Start();
 }
 private void eneMove_Tick(object sender, EventArgs e)
    {
        for (int a = 0; a < 3; a++)
        {
            if (eneGen[a] == 1)//creates BLUE ENEMY
            {

                EnAIaY[a] += 2;
                eneCount++;
                if (a == 3)
                { a = 0; }
            }
        }
    }

 private void enemyGen_Tick(object sender, EventArgs e)
    {
        if (eneCount < 3)//creates an enemy if there are less than 3 enemies
        {
            for (int a = 0; a < 3; a++)
            {
                if (eneGen[a] != 1)
                {
                    Random rnd = new Random();
                    eneGen[a] = rnd.Next(0, 5);//Generates a random number for enemy generation
                    if (a == 3)
                    { a = 0; }
                }
            }
        }


    }

为了解释我制作的代码,有一个包含3个对象的数组。在&#34; enemygen_Tick&#34;中,我让它为每个数组对象生成0到5之间的随机数。每次生成的数字为1时,都会产生敌人。

我还在for循环中添加了一个if语句,这样每次for循环达到3(最大对象数)时,它会再次开始为每个对象生成随机数。

我的问题是如何减少RAM的使用?当程序达到2GB内存使用点时,它会开始滞后。

在第一个敌人沮丧(被淘汰)之后有一个空引用异常,但那是另一个时间的问题。如果Powerpoint幻灯片的FPS比游戏更快,我无法调试游戏。

0 个答案:

没有答案
相关问题