【发布时间】:2012-02-22 23:45:52
【问题描述】:
我正在制作一个类似于著名游戏俄罗斯方块的程序,但在旋转方块时遇到了一些问题。
我知道您可以使用“x = -y”和“y = x”在坐标系中旋转图形,但问题是因为我使用整数数组来表示块,所以它使事情变得如此困难得多。
我的数组看起来像:
int[][] space = new int[20][10];
如果坐标包含块,则值为 1,否则为 0。
那么我怎样才能在那个空间中旋转一个块而不会遇到负数问题呢?
【问题讨论】:
-
如果值为 0 或 1,为什么不直接使用布尔值?
-
最好的解决方法是,如果你拿起一支铅笔和一张纸,在其中画一个网格和一个形状,然后观察旋转它时会发生什么。我知道这不是答案,但相信我,你会通过这种方式学到更多。
-
由于您使用的是二维数组,因此我认为为此目的使用方阵会更容易。这是因为,在方阵中,如果需要在旋转时交换行/列的大小,您将不会遇到问题。
-
@biziclop 我听取了您的建议,并在想如果我将要旋转的形状添加到一个新的较小数组中可能会更容易,这样我就可以更轻松地设置偏移量并以这种方式旋转它.我会尝试一下,但不确定它是否会起作用。
标签: java rotation coordinate-systems