摆动绘制大圆圈导致减速

时间:2015-04-22 01:39:30

标签: java swing graphics

我遇到了困境。我希望能够绘制相当多的透明中型圆圈。但是,当我用摇摆画出大圆圈时,似乎会发生什么。我应该如何绘制这些较大的圆圈

显示此代码的代码只是绘制了一堆小圆圈或许多大圆圈。我使用fraps检查fps,我不知道如何以其他方式做到这一点,在这方面也会非常赞赏这个建议。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.image.*; 
import java.io.*; 
import javax.imageio.*; 
import java.util.*;
import javax.swing.Timer;

public class PhysicsGame {
    public static void main(String[] args) {
        System.out.println();
        Game frame = new Game();
    }
}

class Game extends JFrame implements ActionListener{

    private Timer myTimer;   
    private GamePanel panel;

    public Game() {
        super("Things.py");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(1000,800);
        panel = new GamePanel(this);
        add(panel);
        myTimer = new Timer(15, this);
        myTimer.start();

        setResizable(false);
        setVisible(true);
    }

    public void actionPerformed(ActionEvent evt){
        panel.repaint();        
    }
}

class GamePanel extends JPanel{

    private Game mainframe;

    public GamePanel(Game m){
        mainframe=m;
    }

    public void paintComponent(Graphics gg){
        Graphics2D g=(Graphics2D) gg;
        for (int i=0;i<100;i++){
            g.fillOval(10,10,100,100);
            //g.fillOval(10,10,1000,1000);// this takes significantly longer
        }

    }

    public void addNotify() {
        super.addNotify();
    }

1 个答案:

答案 0 :(得分:0)

如果是游戏,也许您可​​以考虑将图形基元的使用替换为带有alpha图层的(预先计算的)图片(用于透明度)。

您可以使用BufferedImages创建图像,绘制它们,检索它们 需要时,用g.drawImage绘制它们?

我想绘图和裁剪都会更有效率。