【问题标题】:How to repaint a specific area (e.g. circle) in java?如何在java中重绘特定区域(例如圆圈)?
【发布时间】: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());
           
        }
    }
}

【问题讨论】:

    标签: java repaint


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-09-01
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      相关资源
      最近更新 更多