1
Обновления игр,  Пазлы

Крупное обновление пазлов

Несмотря на доработку пазлов и внедрение множества мелких корректировок, оставался ещё один крупный недостаток, который долго мучал меня и про который сообщали игроки-пользователи моих пазлов. Долго не решался взяться, так как понимал, что это не такой простой (как для меня, только начинающего) и трудоёмкий процесс. Наконец-то решился (дошли руки) и занялся устранением этого недостатка. А точнее — он состоит даже из нескольких составляющих.

Коротко про исправления

1. Изменена структура активной части самого элемента пазла.
— теперь рабочая область не весь квадрат изображения, а именно сам элемент пазла с выступами и вырезами.
— устранено пустое неактивное пространство.

2. Убрано автоматическое центрирование курсора (лапки) относительно самого элемента пазла. Очень раздражало его перескакивание.
— теперь, как мы его взяли (за какую его часть), так и перемещаем.

3. Исправлена механика перемещения пазлов.
— теперь активный перемещается поверх остальных;
— теперь после перемещения он остаётся поверх остальных.

4. Поправлен курсор мыши (лапка).
— теперь активная точка — не левый верхний угол, как у стандартной стрелки курсора, а центр лапки;
— теперь визуально более понятно берется каждый элемент пазла.

5. Внесено несколько мелких корректировок.

6. На каньонах в 2х пазлах исправлены два одинаковых элемента пазла.

Проблема 1 (активная часть)

При перемещении каждого взятого мышкой (лапкой котика) пазла каждый этот элемент перемешался по-разному (как бы на своём конкретном слое). То есть, не всегда сверху всех остальных, а под  одним/двумя/всеми (как бы снизу них). Вот, например, как перемещался зеленый фон относительно мордочки кошечки, а затем и розовый (совсем под ними обоими).

Решил проблему относительно просто. Пришлось повозиться со слоями и внедрить в код проверку и запоминание текущего слоя всех элементов, а взятому активному элементу назначать высший уровень слоя над всеми. Ну а установленному на своё место, разумеется, наоборот — назначить минимальный слой снизу.

Но это ещё не всё…

Проблема 2 (перемещение)

Когда пытаемся взять лапкой котика элемент пазла, то его можно взять как бы не за само изображение, а где-то сбоку за угол, вроде как не относящийся к этому элементу. Это происходит потому, что само изображение не занимает полностью всё пространство «квадратной» картинки. Выступы и изгибы обманывают нас в этом. Постараюсь объяснить наглядно:

На первом рисунке красной линией показал физический размер элемента пазла с изображением этого пазла. Как видите, картинка заканчивается, например, в нижнем правом углу далеко от угла самого изображения. Если здесь под этим элементом будет лежать другой элемент и его вполне будет нормально видно, то за данный угол возьмётся именно этот элемент, а не тот, что под ним. Что не очень удобно и понятно — хочешь взять один, а берётся совсем другой элемент. Это начинает «бесить» при частой и долгой игре. Об этом мне сообщили пользователи моих пазлов.

Чтобы как-то, пусть не совсем, но максимально минимизировать такой недостаток, решил устранить и этот недочёт. На втором рисунке показал, как пришлось обводить изображение, ну а в скрипте использовать другой коллайдер для изображений, чтобы это учитывалось.

Таким образом, на третьем рисунке видим зелёное пространство, которое как бы убираем из взаимодействия и остаётся реально настоящий элемент пазла.

И вот тут пришлось сильно заморочиться, так как надо было обработать каждый (!) элемент — всех изображений всех пазлов в отдельности и это проделать для каждой игры. Я описывал в каждой игре, сколько всего таких элементов в них:

  • Котята: 6х6=36 в каждом пазле, 36*18=648 во всех 18 пазлах
  • Каньоны: 8х14=112 в каждом пазле, 112*16=1792 во всех 16 пазлах
  • Париж: 10х18=180 в каждом пазле, 180*16=2880 во всех 16 пазлах

Итого: 5320 элементов. Только представьте!

Так что — понимаете мою «неуверенность» начать заниматься этим процессом. Тем не менее, достаточно долго возился, но таки закончил и с этим недостатком. Результат выглядит так:

Ну а практически уже испытайте в самих пазлах.

 

ПС

В планах внедрение ещё одной функции в пазлах. Но об этом в другой раз. А пока готовлю к выпуску новую игру на другую тематику. Ждите )

Всем — кота, ой — добра!