簡體   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