【发布时间】:2020-10-15 20:22:03
【问题描述】:
我正在尝试制作一个简单的游戏,你基本上必须打圈才能获得积分。但是我遇到了一个我自己无法真正解决的小问题,所以我的问题是如何重新绘制圆形表面。我使用了 repaint(Rectangle r) 方法,但它没有锻炼。
public void objectHit(MouseEvent e) {
int distance = 0, deltaX = 0, deltaY = 0, RadiusSqaured = 0;
for (int i = 0; i < obj.length; i++) {
deltaX = e.getX() - obj[i].getPoint().x;
deltaY = e.getY() - obj[i].getPoint().y;
distance = deltaX * deltaX + deltaY * deltaY;
RadiusSqaured = obj[i].getRadius() * obj[i].getRadius();
if (distance <= RadiusSqaured) {
repaint(obj[i].repaintRect());
x = ThreadLocalRandom.current().nextInt(50 + radius / 2, 850 - radius / 2);
y = ThreadLocalRandom.current().nextInt(60 + radius / 2, 750 - radius / 2);
repaint(obj[i].repaintRect());
}
}
}
【问题讨论】: