Все ниже перечисленные изменения внесены в стандартный набор элементов HiAsm, обновитесь или установите последнюю версию.
Скриншот вкладки панели элементов (слева устаревшая, справа новые элементы)
Скриншот примера FallingLetters.sha в котором на низ окна падают буквы.
Теперь о коллизии поподробней. По идущему в архиве примеру(CollisionMoveElements.sha) можно убедиться что обработка коллизий окон делается достаточно просто и удобно и не требует сложных арифметических вычислений. Вместо прямоугольных окон, можно обрабатывать коллизию и других фигур. К примеру у GameEngine коллизия обрабатывается только прямоугольника с прямоугольником.
Коллизия регионах сделана на функции CombineRgn, она при объединении двух регионов (RGN_AND) выдает результат, по которому и можно понять имеют хоть одну общую точку два региона или нет. Вот и все. Никаких вычислений, только двигай себе регионы вместе с нужными объектами(см. пример:RGN_Collision_SmallGame.sha). И при этом если была коллизия двух регионов, то по скомбинированному региону (он напомню создается из наложенных участков двух регионов), можно узнать и участок коллизии.
С обработкой коллизии может справится даже RGN_Combine (с внесенными небольшими изменениями). Достаточно подать два региона и по результату комбинации определить было столкновение или нет.
Только вот нигде мне не попадалось (интернет, книги) такой метод обработки столкновений. Даже не знаю насколько правильно использовать для этого регионы, но все работает и при этом достаточно неплохо.
В примере Chaos.sha обрабатывается коллизия 100 элементов.
Для тестирования:
Обновите или установите последнюю версию HiAsm или
1. Скачать архив с элементами: rgn_2014_11_11.zip
2. Из папки new установить элементы (перетащить ini файлы на рабочее поле HiAsm). Элементы устанавливаются в вкладку: ОкноРегионы.
3. Заменить элементы из папки change. Файлы pas в папку Elementsdelphicode, файлы ini в папку Elementsdelphiconf, файлы ico в папку Elementsdelphiico. Желательно оригиналы предварительно скопировать в отдельную папку, для возможности восстановления.
4. Скачать архив с примерами: test_rgn_2014_11_11.zip.