所以我正在用 Java 编写一个游戏,我开始使用 drawRect() 方法来表示玩家、敌人和射击。一切都很棒。然后我决定试着变得花哨。我发现自己创建了每个对象的 .png 图像并使用了 Graphics2D drawImage() 方法。一切都开始放缓。有没有其他方法可以加快这个过程?
我的动画基于 Swing Timer
public void paint(Graphics g){
super.paint(g);
Graphics2D g2d = (Graphics2D)g;
player1.paintShips(g);
g2d.drawImage(bGround, 14, 14, this);
try{
for(Shot s: liveRounds){ //liveRounds is an ArrayList of Shots
if(!inBounds.contains(s.getRect()) || villains.collision(s)){
if(villains.collision(s)){
villains.collided(s, this);
}
liveRounds.remove(s);
roundCount--;
}
else{
s.paintShot(g, this);
}
}
}catch(ConcurrentModificationException e){};
villains.paintEnemyGrid(g, this);
g2d.setColor(Color.cyan);
g2d.draw(hitZone1);
g2d.setColor(Color.red);
g.drawString("X: " + player1.getX(1) + " Y: " + player1.getY(1), 370, 150);
g2d.draw(inBounds);
g.drawString(score + "", 440, 40);
g.dispose();
}
关于动画的任何提示或教程?谢谢