2013-04-20 2 views
0

У меня есть пользовательская реализация изображения, которое оживляет. Я хочу сделать несколько экземпляров экземпляра этого класса, используя минимальную память и процессорное время для рендеринга и копирования. Как мне это сделать? Легче всего воссоздать его, когда мне нужен другой, или есть какой-то правильный или рекомендуемый метод копирования экземпляров экземпляров. Я спрашиваю об этом, потому что я не могу найти конструктор копирования, и я не знаю, реализуется ли .clone() в Image.LibGdx Каков правильный способ копирования актера?

ответ

1

Если вы действительно хотите позаботиться о Memory, вы можете дать всем актерам тот же образ. Но если вы каким-то образом меняете образ и у одного из актеров, он меняет на всех актеров (я делал это со спрайтом и менял TextureRegion. Все мои монстры смотрели в одно и то же направление). Но если вы просто просто используете одно и то же изображение, все время вы можете создавать свои объекты и давать одинаковые ссылки на одно изображение.
Например, как это:

public ArrayList<Actor> generateImageActor(){ 
     ArrayList<Actor> temp = new ArrayList<Actor>(); 
     Image img = new Image(____); 
     for(int i = 0; i <10; i++){ 
      MyActor act = new MyActor(img); 
      temp.add(act); 
     } 
     return temp; 
    } 


время рендеринга не получает никакого эффекта, если вы refare к одному изображению или всегда новое изображение. Я просто делаю снимок и его смещение и рисует его. Так что, если вы переустановите 1 изображение у 10 актеров, у него будет такое же рандирование, если у вас будет 10 актеров с копией изображения.
Надеюсь, это поможет.

+1

Не совсем то, что я искал, но я думаю, что я мог бы просто создать функцию, которая вытаскивает TextureRegion и копирует ее, вы ответили на вопрос, но код, который вы опубликовали, на самом деле не был тем, что я искал. – Lokiare

+0

это не должно быть именно то, что вам нужно было просто примером того, что должно помочь вам в его решении. Я не знаю ваш код, поэтому я не могу создать пример или код для вас, который решает вашу проблему. Ваша идея должна работать с областью текстуры! – BennX

+0

Да, даже близко к ответу на вопрос, но хороший совет в любом случае. –

Смежные вопросы