Когда я только начинал данный проект - у меня отсутствовала цель напрягаться; так, хотелось легко и непринуждённо написать несколько игрушек и удовлетвориться этим. Покуда всё было относительно просто (разминка, эмуляции, начальные вещи) - всё шло не то, чтобы очень гладко, но без пробуксовки. Проблемы начались, как водится, там, где их совсем не ждали. Взять, например, обработчик столкновений. Казалось бы, что тут сложного? Выяснить факт пересечения двух прямоугольников - пустяк, ну а на этом, собственно, и строится 90% механик игры. Но, как оказалось, всё не совсем так. Вернее совсем не так. Изначально, обработчик столкновений оказался не так прост, как предполагалось. И да, обработать столкновение 2 прямоугольников куда проще, чем столкновения N прямоугольников, потому, что при самом факте столкновения требуется принимать некоторое решение о том, что же делать дальше, а вот тут и проявляются все неоднозначности. Дальше - больше. Наличие факте пересечения, как оказалось, лишь малая