diff --git a/game/collision.go b/game/collision.go new file mode 100644 index 0000000..5761563 --- /dev/null +++ b/game/collision.go @@ -0,0 +1,21 @@ +package game + +import "tetris/engine/core" + +func CheckShapeCollision(pos core.Vec2i8, shape *Shape, grid *Grid) bool { + for _, block := range shape.Coordinates() { + block = pos.Add(block) + + // Can't collide if block is above the grid. + if block.Y < 0 { + continue + } + + // Check if the block collides with the bottom of the grid. + if block.Y >= int8(grid.Height()) { + return true + } + } + + return false +}