【发布时间】:2015-12-13 14:51:59
【问题描述】:
我正在尝试创建一个基本的 RTS 样式网格。网格完美运行,我可以通过将数字设置为 0 以外的任何值来放置对象。
这是最简单的部分。目前我试图让每个放置的对象都可以旋转。可以旋转的对象可以是任意大小,例如1x1、2x1、3x4等,所有物体都有一个入口块,需要随物体旋转。
例如。
我的网格是空的
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
我可以放置如下所示的对象:
1 2 1
1 1 1
哪个会像
0 0 0 0 0 0 0
0 1 2 1 0 0 0 1 2 1
0 1 1 1 0 0 0 1 1 1
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
但是当旋转时它应该像这样放置
1 2 1 0 1 1 0 1 2 1 1 1
1 1 1 0 1 2 0 1 1 1 1 2
0 0 0 0 1 1 0 1 1
0 1 1 0 0 0 0 1 1
0 2 1 0 1 1 1 2 1 1 1 1
0 1 1 0 1 2 1 1 1 1 2 1
考虑到对象可以具有不同的形状,我试图弄清楚如何在代码中实现这一点? :(
1 1 2 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 2 1 1
1 1 1 1 1 1 2 1 2 1 1 1 1 1
1 1 1 1 1 1
【问题讨论】:
-
开始定义约束:矩阵的维度范围,对象的维度范围,开始时对象必须放在矩阵内的什么位置,旋转表示对象的多个副本(如您的示例)还是只有一个?如果对象位于矩阵的中间怎么办?旋转会导致重叠...
-
然后,显然,发布你的尝试
-
感谢您的回复:),正确的对象是一台机器,我在机器中创建入口点,因此入口点必须在机器外部。该对象将像我发布的第一个对象一样定义一次。当我单击旋转并单击以放置对象时,它会将其放置在旋转位置,而不是其定义的位置。对象的大小将根据未来的请求来定义,但到目前为止我不会让它大于 4x4。我还是不明白如何旋转对象或数组:(
标签: java c# arrays rotation 2d-games