Во-первых, я прошу прощения, если это относится к gamedev, а не здесь, во-вторых, я все еще изучаю java, так что извините, если ответ очень прост, или если я не пойду правильно.
Я делаю игру с использованием фреймворка slick2d, с помощью присутствующих здесь людей мне удалось поместить все мои персонажи в массив, отсортировать этот массив по значению оси Y и нарисовать их в таком порядке , чтобы создать иллюзию zaxis. Однако теперь я хочу добавить новый алгоритм сортировки, чтобы после обычной сортировки он выталкивал все мертвые символы в конец массива по причине игрового процесса.
Я создал алгоритм, который выглядит так, как будто он должен работать для меня, но на самом деле происходит то, что, когда персонаж умирает, он просто полностью удаляет один случайный символ с экрана, без сбоев, без исключения нулевого указателя, только один символ останавливает рендеринг, хотя остальная часть игрового процесса работает нормально, их действия и движения все еще работают, как будто они невидимы.
Я так долго смотрел на этот код, что не могу понять, что с ним не так, помощь будет очень признательна.
При необходимости я могу опубликовать свой оригинальный алгоритм сортировки или код, который рисует отсортированный массив, но я не думаю, что в этом есть ошибка, они всегда работали нормально.
//this is what I have
Creature temp = null;
for(int i=0; i<drawArray.length; i++) {
if(drawArray[i].isDead){
temp = drawArray[0];
drawArray[0] = drawArray[i];
int k = i
for(int j=0; j < (i-1); j++){
drawArray[k-1] = drawArray[k];
k -=1;
}
drawArray[1] = temp;
}
}