Является ли макет случайным? Если нет, просто составьте список ограничивающих рамок областей «падения» и отметьте черный флажок «игрок» напротив этого списка «падений».
Допустим, вы храните свой полный список блоков "fall" в массиве C "fallBoxes" с размером fallBoxCount. // Вы можете использовать NSArray, но код проще таким образом.
// playerBox is the rect for the current position of the black "player" box.
for (int i = 0; i < fallBoxCount; ++i)
{
CGRect testBox = fallBox[i];
if (CGRectContainsRect(textBox, playerBox)
{
// Fall!
break;
}
}