Witam, mam program, który przeciąga figury na ekranie jeśli kliknie się myszką w miejscu, gdzie ta figura jest i się ją przeciągnie. Mam podany kod z programu z wykładu, gdzie jest prostokąt i elipsa, u siebie mam dynamiczną tablicę prostokątów, zastanawiam się czemu w programie na wykładzie działa wszystko jak powinno, np. jak prostokąt i elipsa mają punkty wspólne, ale ja wezmę jakiś punkt z ich różnicy symetrycznej to przeciągnie się jedna figura, a w moim programie przeciągają się wszystkie figury, które są zlepione. Jeśli coś jest niejasne to proszę pisać.
Kod z wykładu:
private void doMove(MouseEvent e) {
int dx = e.getX() - x;
int dy = e.getY() - y;
if (zrect.isHit(x, y)) {
zrect.addX(dx);
zrect.addY(dy);
repaint();
}
if (zell.isHit(x, y)) {
zell.addX(dx);
zell.addY(dy);
repaint();
}
x += dx;
y += dy;
}
Kod mój:
private void doMove(MouseEvent e) {
int dx = e.getX() - x;
int dy = e.getY() - y;
for(ZRectangle a: shapes){
if (a.isHit(x, y)) {
a.addX(dx);
a.addY(dy);
repaint();
}
}
x += dx;
y += dy;
}