Одна вещь, которую нужно проверить, - убедиться, что Игрок действительно не проходит через платформу. Какова высота платформы? Если высота платформы невелика, то игрок может быть выше платформы (в одном кадре), а затем в следующем кадре (player.y + playerVelocity.y) более чем на полпути через платформу на другом. Это означало бы, что он никогда не «ударит» по платформе, хотя визуально будет выглядеть так, как он.
Одна вещь, которую вы можете сделать, это распечатать с помощью NSLog () значения. таким образом, когда вы пропустите, вы можете проверить журналы, чтобы увидеть, какие значения данных были пропущены.
Есть много способов справиться с "посадкой на платформы". Один из них - убедиться, что персонаж достиг достаточно большой высоты, чтобы быть «над» платформой, а затем, если он когда-либо пересечется, вы меняете его местоположение на платформу.