飞机大战中敌机自动下落原理

问题遇到的现象和发生背景

我是最近开始做,找到了您的飞机大战源码,有一段关于敌机自动下落的代码我读不懂想请教一下原理

问题相关代码,请勿粘贴截图
static int speed =15;    //敌机自动下落
if (speed<EnemyMoveSpeed)
    speed++;
//if (speed<BossMoveSpeed)
    //speed++;
if (speed==EnemyMoveSpeed ){
    speed=0;
    for(k=0;k<EnemyNum;k++)
    {
        canvas[enemy[k].x][enemy[k].y] = 0;    //残影问题
        (enemy[k].x)++;
        canvas[enemy[k].x][enemy[k].y] = 3;
    }
    
    for(k=0;k<BossNum;k++)
    {
        canvas[boss[k].x][boss[k].y] = 0;    //残影问题
        (boss[k].x)++;
        canvas[boss[k].x][boss[k].y] = 4;
    }
    
}
运行结果及报错内容

飞机自动下落的速度与speed变量的关系是什么?
为何只判断了一次speed与enemyspeed的关系敌机就能一直自动下落?
bossspeed--为何会使敌机速度加快?

我的解答思路和尝试过的方法

暂时没有解决办法。

我想要达到的结果

通过调整某一变量达到控制敌机速度的效果。