Ponieważ sprawdzasz, czy osiągnęły one położenie dokładnie zero. Tu jest problem. Bo teraz zależnie od tego gdzie się pojawią i jakie prędkości osiągną szansa, że wpadną idealnie na zero jest ograniczona.
W związku z tym proponuję, żebyś sprawdzał warunek przy pomocy <= (>=), a nie == i ustawiał prędkość na zero oraz ich pozycję na końcową. W ten sposób każdy klocek, który będzie śmiał wylecieć poza ekran zostanie cofnięty. Będzie to niezauważalne.