所以我正在将一个俄罗斯方块游戏作为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