Я пытаюсь программировать космические захватчики на C ++. Я не эксперт и решил хранить врагов в многомерном массиве.
Здесь каждый враг - это столбец. Строки сверху вниз: x, y1, y2, y3, y4, y5 и здоровье противника. у1 - самый нижний ряд (или ряд врагов, ближайших к игроку).
Когда я в данный момент стреляю в своих врагов, весь ряд врагов исчезает, но я хочу, чтобы на одну пулю исчез только один враг. Может кто-нибудь сказать мне, где я ошибся, пожалуйста?
if (keys.fire && bullet.health == 0)
{
bullet.y = width - spriteSize;
bullet.x = player.x;
bullet.dy = 1;
bullet.dx = 0;
bullet.health = 1;
}
bullet.y -= bullet.dy;
bullet.x += bullet.dx;
if(bullet.health > 0)
{
drawSprite(Bullet, bullet.x, bullet.y);
}
for(int i = 0; i < 12; i++)
{
for(int j = 1; j < 6; j++)
{
if(distanceBetween(enemies[0][i], enemies[j][i], bullet.x, bullet.y) < 20)
{
enemies[6][i] = 0; //Enemy Health
enemies[j][i] = -1;
bullet.health = 0;
}
if(enemies[6][i]>0)
{
for(int sprite = 1; sprite < 6; sprite++)
{
drawSprite(Enemy1, aliens[0][i], aliens[sprite][i]);
}
}