如何检查是否可以向左或向右移动俄罗斯方块

时间:2015-11-05 14:02:13

标签: java collision tetris

所以我正在将一个俄罗斯方块游戏作为Java的学习项目。游戏的结构是我有一个块类,它保存每个块的坐标,而且我还有一个tetromino类,它包含一个块数组,可以改变它们的所有X和Y.所以这是我的检查垂直碰撞:

    private static boolean collisionCheck(ArrayList<Block> staticBlocks, ArrayList<Block> blocks) {
        if (staticBlocks != null && blocks != null) {
            Block curBlock = blocks.get(3);
            Block otherBlock = blocks.get(2);
            for (Block block : staticBlocks) {
                if ((curBlock.getY() == block.getY() - 20
                              && curBlock.getX() == block.getX())
                          || (otherBlock.getY() == block.getY() - 20
                              && otherBlock.getX() == block.getX())) {
                    return true;
                }
            }
        }
        return false;
    }

staticBlocks,保存已经丢弃的所有块,或者从以前的四联骨牌中保留的块,块保存当前可移动的块,这些块位于掉落的tetromino中

我正在寻找一个关于如何检查水平碰撞(向左或向右移动)的想法,当我尝试以相同的方式水平碰撞时,忽略碰撞,方法永远不会返回true

-20的原因是因为每个块的高度和宽度是20

0 个答案:

没有答案