Я разрабатываю 2D-игру, используя C с Allegro 5. Сейчас я кодирую движение внутриигрового врага, растровое изображение, которое следует за игроком (координаты X и Y). Несмотря на то, что он отлично работает для оси X, он часто не может двигаться к игроку по оси Y, имея вместо движения растровое изображение.
Вот код, который я использую:
if(*xEnemy < *x){
*xEnemy += 3;
}else if(*xEnemy > *x){
*xEnemy -= 3;
}else if(*yEnemy < *y){
*yEnemy += 3;
}else if (*yEnemy > *y){
*yEnemy -= 3;
}
Было бы хорошо, если бы я использовал , если вместо , в противном случае, если , однако враг будет идти по диагональным путям, и я не планирую это для игра. Понятно, что проблема заключается в elses , так что для них является рабочей альтернативой?