оптимизация эффекта призрака (java)

#java #optimization

Вопрос:

поэтому я пытаюсь создать «призрачный» эффект, например, след на изображении, и мне это очень нравится

то, как я это делаю, выглядит так:

   public boolean geffect = true;  private int traceint = 1, ti;  private int tracesize = 13;  private BufferedImage[] trace = new BufferedImage[tracesize];  private BufferedImage[] eyetrace = new BufferedImage[tracesize];  private int[] xtrace = new int[tracesize];  private int[] ytrace = new int[tracesize];  private double[] optrace = new double[tracesize];    [...]   if(geffect) {      if(ti gt;= traceint) {  for(int i = tracesize - 1; i gt; 0; i--) {  xtrace[i] = xtrace[i-1];  ytrace[i] = ytrace[i-1];  trace[i] = trace[i-1];  eyetrace[i] = eyetrace[i-1];  optrace[i] = optrace[i-1];  }    xtrace[0] = this.getX();  ytrace[0] = this.getY();  trace[0] = animation.getCurframe();  if(lright) {  eyetrace[0] = animGey[0];  }else if(lleft) {  eyetrace[0] = animGey[1];  }  optrace[0] = fade;    ti = 0;  }else {  ti  ;  }    }    for(int i = 0; i lt; tracesize; i  ) {    double traceop = (tracesize-i)/(double)tracesize/5;    g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float)(traceop*optrace[i])));    g.drawImage(trace[i], xtrace[i]-(int)Camera.x, ytrace[i]-(int)Camera.y, width, height, null);    g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float)traceop));    g.drawImage(eyetrace[i], xtrace[i]-(int)Camera.x, ytrace[i]-(int)Camera.y, width, height, null);    g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f));  }  

но я знаю, что есть гораздо лучший способ сделать это, и прямо сейчас, когда больше врагов с таким эффектом и размер трассировки превышает 100, игра начинает отставать

но я хотел найти лучший и более оптимизированный способ сделать это, как я думаю, вы, ребята, знаете, как это сделать

заранее благодарю вас!

Комментарии:

1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.