我在做一个游戏,你有一个8x12的网格,每个单元大小相同,所有的单元都是直接相邻的。
拖动各种俄罗斯方块形状并将其放置在网格上的有效位置,有效位置是形状将占用的所有单元格都不被其他形状占用的位置。
我的问题是我不知道如何在网格空间中搜索有效的位置。我一直在寻找一种能解决这类问题的算法,但到目前为止,我还是空手而归看起来检测有效位置应该很简单,但是我还没有找到一个成功的解决方案。
任何过程,算法建议,或如何着手解决这一问题的想法将是非常有帮助的谢谢!
编辑:
以下是预期的功能:当形状位于有效位置时,可以在有效位置之间自由拖动并跟随鼠标指针。但是,当您尝试将形状拖动到无效区域(即沿指定方向移动会将形状的一个或多个块放置在无效位置)时,它将保留在最后一个有效位置。
此时,当鼠标位于无效区域时,我想做一些“预测”移动,以便如果播放器将鼠标光标移到有效位置附近,则形状将“捕捉”到位,例如有效位置是两个网格空间。
谢谢你的建议,到目前为止,我还没有想到那个方法!

最佳答案

如前所述,算法将非常简单。任意选择形状上的起始块,并尝试将其与网格中每个打开的单元格匹配。如果在块与当前单元格对齐的情况下“绘制”形状不会导致冲突,则已找到有效的位置。

10-06 05:21
查看更多