C语言代码求解释,飞机小游戏

void updateWithoutInput() // 与用户输入无关的更新
{
int i,j,k;
for (i=0;i<High;i++)
{
for (j=0;j<Width;j++)
{
if (canvas[i][j]==2)
{
for (k=0;k<EnemyNum;k++)
{
if ((i==enemy_x[k]) && (j==enemy_y[k])) // 子弹击中敌机
{
score++; // 分数加1
if (score%5==0 && EnemyMoveSpeed>3) // 达到一定积分后,敌机变快
EnemyMoveSpeed--;
if (score%5==0) // 达到一定积分后,子弹变厉害
BulletWidth++;
canvas[enemy_x[k]][enemy_y[k]] = 0;
enemy_x[k] = rand()%2; // 产生新的飞机
enemy_y[k] = rand()%Width;
canvas[enemy_x[k]][enemy_y[k]] = 3;
canvas[i][j] = 0; // 子弹消失
}
}
// 子弹向上移动
canvas[i][j] = 0;
if (i>0)
canvas[i-1][j] = 2;
}
}
}
2层for循环还可以理解,3层就彻底不明白了
最新回答
元嘉草草

2024-09-26 05:14:38

前两层相当于扫描整个画布。第三层相当于便利所有的敌机,判断位置是否和子弹位置相同。