Я написал некоторый код для перемещения графики (которая окружена прямоугольником), и я пытаюсь нарисовать другой овал (с прямоугольником вокруг него), который будет генерироваться случайным образом.Сейчас он генерирует WAY быстро, и я не хочу использовать Thread.sleep;потому что он перестанет слушать ключи (насколько я знаю?).Так что любой, кто хорошо разбирается в многопоточности, может помочь мне сделать это или знать, как сделать графическое изображение, пока оно не будет затронуто подвижной графикой.
Генератор графики в основном классе:
public void paintComponent(Graphics g){
//System.out.println("X = " + al.x + ", Y = " + al.y);
boolean intersect = false;
int points = 0;
g.drawString("Points: " + points, 5, 445);
Rectangle r1 = new Rectangle(al.x, al.y, 10, 10);
g.setColor(Color.BLACK);
g.fillOval(al.x, al.y, 10, 10);
Random randX = new Random();
Random randY = new Random();
int xInt = randX.nextInt(590);
int yInt = randY.nextInt(440);
Rectangle dCoin = new Rectangle(xInt, yInt, 10, 10);
g.setColor(Color.YELLOW);
g.fillOval(xInt, yInt, 10, 10);
/*
* (???)
*
* for(int idx = 1; idx == 1; idx++){
* if(xInt < 590 && yInt < 440){
* }
* }
*
* Check if graphic collides with another:
*
* if(r1.intersects(r2)){
* doSomething;
* }
*
*/
repaint();
}
}
Кстати: r1 окружает подвижную графику, а r2 - прямоугольник, окружающий случайно сгенерированную графику.Мне пришлось сделать невидимые прямоугольники вокруг овалов, чтобы получить метод r1.intersects (r2).