我正在制作俄罗斯方块游戏,并试图思考如何旋转方块。
它们是在一个单独的块上旋转吗?还是应该变形...即交换位置?
我想要实现的方式有点像硬编码...就像(伪代码):
if (rotateRight()) {
if (Piece == "T") {
if (Piece.getCurrRotation() == down (aka.. 180 degrees))
move each Tile in Piece from the down rotation to the left rotation... each coordinate would be pre-specified for a given condition... aka lot's of hardcoding
}
if (Piece == "L") { etc...
}
}
if (rotateLeft()) {
perform same checks for the Left...
}
但是,为了弄清楚当前方块所处的旋转状态(每个方块有4种可能的旋转状态)和
然后,根据该方块设置新的硬编码坐标
我需要为每个方块都这样做...这似乎不是正确的思考方式。
还有其他想法吗?
Piece
类中添加一个rotate
方法,然后为每个子Piece
类实现该方法,并从控制器中调用它。这样可以避免使用大型类似于switch语句的结构。 - Robin