在网格上寻找形状的空间

时间:2011-06-03 04:50:51

标签: algorithm grid

我正在制作一个游戏,你有一个8x12网格,每个单元格的大小相同,所有单元格都是直接相邻的。

你可以拖动各种类似俄罗斯方块的形状并将它们放置在有效位置的网格上,一个有效的位置是形状占据的所有单元格都没有被其他形状占据的位置。

我的问题是我不确定如何在网格空间中搜索有效位置。我一直在寻找一种可以解决这类问题的算法,但到目前为止,我已空手而归。看起来检测有效位置应该非常简单,但我无法找到成功的解决方案。

任何关于如何解决这个问题的流程,算法建议或想法都会非常有帮助。谢谢!

修改

以下是预期的功能:当形状位于有效位置时,可以在有效位置之间自由拖动并跟随鼠标指针。但是,当您尝试将形状拖动到无效区域时(即,沿指定方向移动会将形状的一个或多个块放在无效位置),它将保留在最后一个有效位置。

此时,当鼠标处于无效区域时,我想做一些“预测”运动,这样如果玩家将鼠标光标移动到有效位置附近,那么形状就会“卡入”到位,比如说有效位置是两个网格空间。

感谢您的建议到目前为止;我没想过那个方法!

1 个答案:

答案 0 :(得分:1)

如上所述,算法非常简单。任意选择形状上的起始块,并尝试将其与网格的每个开放单元格匹配。如果“绘制”块与当前单元格对齐的块不会导致碰撞,则表示您找到了有效位置。