Основные принципы геймплея. Эффект рисования кистью сделан следующим образом: при нажатии левой кнопки мыши, в координате, где произошло это событие, появляется обьект ParticleSystems, который и создает впечатление, что рисование производиться кисточкой. Генерация фигуры производиться созданием нового обьекта типа Figure, в конструкторе которого вызывается метод рандомного определения типа геометрии а также инициализация переменных в соответствии типу: иконка отображения и соотношение заполнения плоскости точками. Определение соответсвия нарисованой игроком и сгенерированной фигуры происходит следующим образом: каждая фигура состоит из набора точек, причем треугольник не обязательно может содержать 3 точки. После нажатия ЛКМ игрок перемещает мышь изображая задуманную форму, при этом он совершает незначительные остановки в местах изменения направления движения(углы фигуры), эти паузы фиксируются и функция добавляет данную позицию остановки в коллекцию векторов точек положения. Далее для распознания направления фигуры задействован следующий механизм: происходит определение центра геометрической фигуры методом суммирования координат из коллекции и деление результата на их колличество. Центральная точка является отправным пунктом деления пространства на плоскости (в случаи треугольника - на 2 плоскости, в случае прямоугольника на 4). Следующим шагом является определение принадлежания каждой точки к получнным плоскостям. Так если треугольник направлен влево, и разделен вертикально по центру, слева от центра окажеться меньшее количество позиций из коллекции, значить можно предположить что треугольник направлен влево - является истинной. При направлении фигуры вверх, либо вниз, она разделяется не вертикалью а уже горизонталью, подсчет количества сверху и снизу от линии деления дает аналогичный результат. В случаи с квадратом, разделение происходит на 4 квадранта, и контролируется обязательное заполнение каждого из них. Так если треугольник своей вершиной может занять один из двух квадрантов, то прямоугольник обязан заполнить их все. Для предотвращения ложного срабатывания, производиться дополнительная идентификация формы рисунка методом суммирования внутренних углов. Проверка завершенности рисунка осуществлена методом определения допустимого расстояния между начальной и конечной точкой фигуры
-
Notifications
You must be signed in to change notification settings - Fork 0
dmitryuck/raspoznayka
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published