我需要帮助。我目前正在尝试制作一款游戏,到目前为止,我做得还不错。我遇到的唯一主要问题是添加敌人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比游戏更快,我无法调试游戏。