我正在尝试制作游戏 Dots 并且我已经想出了一种使用int[][]
. 我还创建了一种方法来删除点,如果它们彼此相邻并且在选择时具有相同的颜色。我的运动场是 7 x 7 并且充满了JButton
s(也可以是JLabel
s)。现在我需要找到一种方法来拖动几个点并选择它们,如果它们与初始点的颜色相同,但是每当我尝试做类似的事情时,我总是最终要么选择初始点本身并发送它每当我移动鼠标或为屏幕上的指针选择 x 和 y 值时,按钮的坐标。
以下是相关代码:
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 7; j++) {
final int finalJ = j;
final int finalI = i;
playField[i][j].addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
try {
while (true) {
dotsController.beginZet(finalI, finalJ);
}
} catch (DotsException e1) {
e1.printStackTrace();
}
}
});
playField[i][j].addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
try {
dotsController.doeZet();
} catch (DotsException e1) {
e1.printStackTrace();
}
}
});
}
}