Как я говорил ранее, из-за коротких сроков, я далеко не все успел сделать из того, что хотел. Из-за этого же и цель игры немного поменялась. С другой стороны, благодаря изменению цели - появилась новая.
Не успел
Начать я хотел с перечисления доделок.
Кстати, написание статьи - хороший способ распланировать действия, как оказалось.
1. Дорисовать спрайты
Я, конечно, не иллюстратор, но на отвали спрайты оставлять не хочется.
2. Анимации
У нас слишком топорные переходы, надо добавить для красоты, хоть что-то
3. Интерфейс
Наброски - это хорошо, но надо что-то более вменяемое сделать. Будем придумывать.
- Как мог заметить, шрифт я поменял, поскольку старый выглядел не ахти: H и X не отличить, O и D тоже очень похожи, да и различные символы, откровенно говоря, некрасивые.
- Летающие тарелки как обозначение жизней - тоже как-то не смотрятся, слишком громоздкие и цвета как-то не подходят.
- Исправить баг адаптивности, который обнаружил зайдя с телефона.
- Как-то совсем убого выглядит выбор уровня.
4. Управление мышью/тачем или стрелками
Сейчас играть можно только с клавиатуры, добавим еще тач и мышь. Чтобы можно было с телефона играть.
Реализация
Интерфейс
Начал я с исправления интерфейса, как-то идеи по исправлениям появились первыми в этой части.
1. Первым делом, я заменил везде шрифты. Я долго выбирал 7 и 14-сегментые шрифты, но так ничего и не нашел вменяемого. В какой-то момент меня осенило, что надо выбрать шрифт из старых игр на денди. Благо есть такой шрифт в открытом доступе. Когда его применил, сразу игра стала такой ламповой и теплой для меня, что понял, это то, что я хочу.
2. Благодаря шрифту появилась и идея, как оформить выбор уровня, а именно в виде списка, и возможно с корабликом слева, но это пока не решил до конца, стоит ли оставлять. Проблема лишь в том, как называть уровни. Это отличный вариант, чтобы пихать всякие пасхалки, но придумывать в перспективе сотни названий - страшно. Но черт возьми, как же классно выглядит.
3. С обозначениями жизней я решил также просто поступить. Заменил кораблики на сердечки. Заодно добавил плюсик, на случай, если жизней будет больше трех.
4. Я заметил, что часть меню обрезается, если пропорции экрана больше чем 16/9. Поэтому сделал подгон не по ширине, а по высоте.
Спрайты
В первую очередь, я хотел бы поправить портал, так как все в пиксельном стиле, то размытый спрайт выглядит не в тему. Поэтому я сделал его четче. Так же меня смущало, что обозначение места портала у нас квадратное, а портал круглый. Пусть портал и место его установки совпадают. Ну и само собой в интерфейс вставил новый спрайт портала.
Дополнительно мне пришлось дорисовать сердечки для обозначения жизней.
Анимация
Есть у меня идея того, как делать переходы, но нужно сильно переделывать все. Поэтому пока это отложу до следующего этапа, когда будет готов рефакторинг кода. На данный момент сделаю топорное с затемнением. Просто, быстро, но хоть как-то оформлено.
Управление
Здесь все просто.
1. Рисуем джойстик, он будет частью интерфейса. Состоит из платформы и рычажка, который двигается в пределах платформы. Форму я выбрал нестандартную - квадратную. Рычажок будет двигаться в пределах рамки платформы.
2. Создаем класс. Он должен следить за тачем и нажатием на ЛКМ. Если он засекает нажатие, то отображает джойстик в месте касания. Если засекает отпускание - прячет его. При передвижении рассчитывается расстояние от центра платформы в пикселях.
3. Добавим параметр чувствительности. Чувствительность 1 соответствует точной передачи движения пальца/курсора по экрану. Чувствительность 0,5 - означает, что перемещение пальца/курсора на 2 пикселя, игра воспримет как перемещение на 1 пиксель.
4. Рассчитываем силу перемещения и ограничиваем ее значениями -1 и 1 по обеим осям, где 1 - это расстояние от центра платформы до края деленное на чувствительность.
5. Передаем эти значения кораблю в метод перемещения. В то же время отображаем сдвиг рычажка.
Итог
В целом пока то, что я хотел сделать на джеме - закончено. Есть один баг, что клавиатура перекрывает тач и мышь, но для исправления нужно сделать рефакторинг, чем мы займемся в следующий раз. Пока не буду обновлять игру на itch, сделаем это после рефакторинга и исправления багов.
_______________________________
Спасибо, что дочитал до конца. Наконец-то мы приведем код в порядок и после этого можно будет добавлять разные фишки, бонусы дебафы и т.д. Самое сложное для меня будет именно левел-дизайн, чтобы было интересно играть.
Если укажешь на ошибку, не обижусь, а исправлю ее)
_______________________________
Все страницы данной рубрики:
4 - Рефакторинг - пишется
_______________________________
Все ссылки можно посмотреть здесь