我想編碼一個GUI,允許用戶移動一個盒子。屏幕上還有另一個框,稱爲「塊」,該框不允許相交。我的盒子移動得很好,但我不知道如何阻止兩者相交,並在屏幕上保留盒子的圖形。現在,盒子在碰到塊時消失了(我知道它爲什麼這樣做,我只是不知道如何解決它)。停止框移動,如果它擊中另一個盒子
X和Y是由左右鼠標鍵檢測到的移動。
box = new Rectangle2D.Double(0 + X, 0 + Y, 200, 50);
block = new Rectangle2D.Double(300, 300, 50, 50);
if (box.intersects(block)) {
hit = true;
} else {
hit = false;
}
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.red);
g2.draw(block);
if (model.hit()) {
g2.setPaint(Color.black);
g2.drawString("WHOA THERE", 20, 50);
} else {
g2.setPaint(Color.blue);
g2.fill(box);
您能否提供有關盒子移動的更多信息?你應該做的是檢測交叉點,當你試圖更新框的位置,而不是繪製時。 – 2013-04-23 18:20:07