Я играю с PyGame.
Сейчас я пытаюсь реализовать клон QIX .
У меня есть игровой цикл, и я могу перемещать игрока (курсор) на экране.
В QIX движение игрока оставляет след (хвост) на экране, создавая ломаную линию.
Если ломаная с границами экрана создает многоугольник, область заполняется.
Как я могу выполнить это поведение?
Как хранить хвост в памяти?
Как определить, когда он строит замкнутую форму, которая должна быть заполнена?
Мне не нужно точное рабочее решение, некоторые указатели, альтернативные имена было бы круто.
На старте есть только серая граница, где игрок может перемещать курсор.
- Первый сценарий:
Пользователь перемещает курсор из точки A в точку B, рисуя красную мультилинию до точки C. В этой точке из-за пересечения границы точка A должна автоматически соединяться с точкой C, создавая многоугольник, который должен быть заполнен ( этот оранжевый материал на моем рисунке). Заполнение многоугольника чертовски просто в PyGame, потому что я предоставляю последовательность точек, а PyGame заботится обо всем остальном.
- Второй сценарий:
Пользователь перемещается по границе в точку D, откуда он рисует линию в точку E. Поскольку он пересекает линию предыдущего многоугольника, и с помощью его линий и границы можно создать еще один многоугольник, он также должен быть заполнен. (зеленая).
- Третий сценарий:
Игрок продвигается дальше по многоугольнику (он может двигаться по существующим линиям многоугольника) и рисует линию от точки G к точке F. Здесь снова, из-за границы и существующих линий, должен быть заполнен другой многоугольник (синий) ,