俄罗斯方块中的若干问题
我想做个俄罗斯方块的游戏,与以往不同的是允许用户定制不同形状的俄罗斯方块,但是这其中存在如下的问题:
1、对于一个用户定制的方块,当方块变型时,其旋转的中心点如何计算?
2、在一个方块变型的过程中,如何判断其变型是否被允许?就是说当方块变型时周边是否会有其他的已经落下的块阻挡方块的变型.
对于第一个问题,本来想用俄罗斯方块的重心当作它的旋转中心,但是该重心一般为非整数值,如果取四舍五入之后的整值,对于像那种“一整条”的方块(即长方形的方块)经过两次变型后,其位置会变化而不能回到最初的位置形态。
对于第二个问题,最初的解决思路是判断一个俄罗斯方块在旋转过程中所经过的区域是否存在已经落下的块,如果有,就不允许变型,反之就允许。但是该区域并不好计算,因为旋转过程中,俄罗斯方块如果绕重心旋转,坐标值并非整数,而旋转后映射的坐标也并非整数,同时由于该映射的存在,变化前后的坐标值并非按简单的线性变化,所以变型后的定位不知道怎么解决
也不知道大家能不能看懂我说的这些,不过希望能和有兴趣的朋友一起探讨。