图像在gameBoard上移动

时间:2015-09-09 15:36:19

标签: java swing

我把这个棋盘作为游戏板:http://puu.sh/k5e6O/c5eebd31f3.png 这个想法是有一个图像遍布整个板,然后它最终在一侧的一个圆圈(浅色) 我有点想法,任何想法如何设置?

注意: - 我使用的是Swing库,下面的代码是我如何将电路板设置为Jframe(Jframe = bp)

 gameBoard = new ImageIcon("gameBoard.png");
 JLabel gameBoard_1 = new JLabel(gameBoard);
 bp.add(gameBoard_1);

1 个答案:

答案 0 :(得分:3)

当然,你需要一些东西。

首先,每张图片都需要一个"中心" (图像坐标)和电路板上的每个有效位置都需要一个坐标(电路板坐标)。

然后,您需要使用一些数学运算将图像转换为正确的坐标。它就像

一样简单
placedImage = imageCoords + boardCoords

由于图像有边界,因此设置图像边界是基于图像坐标是有意义的。这意味着翻译的边界与

相同
upperLeftBoundary = boundaryInImageCoords + boardCoords

然后你的绘图程序应该绘制板,并绘制图像,但在你的情况下,你想要在板坐标中绘制它们。

如果你知道线性代数,你可以存储"翻译"在矩阵中的坐标系之间,重新定位图像可以像

一样简单
boardCoordinates = locationTranslation * imageCoordinates

其中imageCoordinates存储为向量,locationTranslation是格式

的矩阵
T = [1 0 dx]
    [0 1 dy]
    [0 0 1 ]