Я делаю настольную игру под названием «Go» на основе реальной настольной игры. В основном, есть 2 игрока (белый и черный), и они по очереди помещают белые и черные камни на пересечения сетки игровых автоматов.Рисование 2D-массива на сетке
До сих пор я мог нарисовать камень, чередовать между игроками и изменить значение в своем 2D-массиве, где 0 = открытое пятно, 1 = белый и 2 = черный.
Я хочу нарисовать соответствующий камень из массива 2D на моей доске. Я могу нарисовать правильный камень и заставить его следовать за моей мышью, но как только я нажимаю на место, которое я хочу, чтобы оно было размещено в месте и оставалось там.
Это то, что я использую, чтобы сделать камень следовать моей мыши
if (turn == 1) {
g2d.drawImage(s.getBlackStone(),
s.getBlackX() - Frame.frameLocation.x - 15,
s.getBlackY() - Frame.frameLocation.y - 35, null);
} else {
g2d.drawImage(s.getWhiteStone(),
s.getWhiteX() - Frame.frameLocation.x - 15,
s.getWhiteY() - Frame.frameLocation.y - 35, null);
}
То, что я думал, это у меня есть метод, который вызывается каждый раз, когда я нажимаю мою кнопку мыши и метод получит расположение сетки где моя мышь нажата, а кто ее поворачивает, и нарисуйте изображение. Что вы думаете об этом?
Является ли 'Frame 'переменной или классом? Если это переменная, ее следует называть 'frame'. Если это класс, тогда (a) вы не должны использовать статические переменные для местоположения и (b) вы не должны скрывать 'java.awt.Frame'. Кроме того, графические контексты рисуют относительно компонента, а не экрана. – wchargin
Это звучит уместно. Получите местоположение сетки и поместите/нарисуйте камень там. Не уверен, что еще вы действительно сделали – greedybuddha
Также рассмотрите перечисления: используйте 'public enum Player {WHITE, BLACK}' в сочетании с 'if (turn == Player.WHITE)'. – wchargin