batch.draw (icon [i] .getKeyFrame (elapsedTime, true), 1700, (screenHeight * (i/enemy.length))); Я пытаюсь использовать динамический массив анимаций для цель создания ряда вражеских спрайтов в игре RPG. На данный момент мне кажется, что я могу приспособить атлас к массиву анимации, но когда я иду рисовать, появляется только один, хотя он находится в том месте, которое я описал, поэтому я считаю, что остальные визуализируются, но по какой-то причине не оставайтесь на экране. В моей инициализации:Создание анимации клонирования в Libgdx
spriteatlas = new TextureAtlas(Gdx.files.internal("spritesheet.atlas"));
backgroundatlas = new TextureAtlas(Gdx.files.internal("sprite.atlas"));
//List<Animation> icon = new ArrayList<Animation>(enemies.length);
icon = new Animation[enemies.length];
for (int i =0;i<enemies.length;i++)
icon[i] = new Animation(1/15f, spriteatlas.getRegions());
background = new Animation(1/2f, backgroundatlas.getRegions());
В начертить
elapsedTime += Gdx.graphics.getDeltaTime();
batch.draw(background.getKeyFrame(elapsedTime, true), 0, 0);
for (int i = 0; i<enemies.length;i++) {
batch.draw(icon[i].getKeyFrame(elapsedTime, true), 1700,(2*i*screenHeight/enemies.length*screenHeight));
}
Спасибо за то, Джонатон основные математические ошибки являются Bane моего существования (: /). Его все еще только показывая один спрайт, есть ли какая-то причина, почему он может это сделать?
редактировать код, чтобы изменить эту строку, но Я все равно получаю один и тот же отображаемый экран, один спрайт появляется с правильным значением x, и это похоже на это. Есть ли другие ошибки, которые вы можете увидеть? – Michael
Кажется, что он должен работать, может быть, просто вывести значение enemy.length и screenHeight в журнал и посмотреть, являются ли они sain. не мог повредить, чтобы увидеть значение 'screenHeight * (i/enemy.length)', выведя его в цикле, а также –
. Я отредактировал ответ, вам нужно наложить враг.length на float, так как он возвращает int –