繁体   English   中英

如何在java中重新绘制特定区域(例如圆圈)?

[英]How to repaint a specific area (e.g. circle) in java?

我正在尝试制作一个简单的游戏,您基本上必须击中圆圈才能获得一分。 但是我遇到了一个我自己无法真正解决的小问题,所以我的问题是如何重新绘制圆形表面。我使用了 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());
           
        }
    }
}

在 JComponent 中,有一种基于框区域的重绘方法。 这是否满足您的要求?

https://docs.oracle.com/javase/8/docs/api/javax/swing/JComponent.html#repaint-long-int-int-int-int-

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM