12.18
Очередная рабочая сессия, после очередного же перерыва на полгода. Опять весь код с чистого листа. На этот раз с учётом всего опыта, накопившегося за последнее время. Создаваемую «игру-сражение» можно будет использовать как основу для боёвки в других наработках. Вполне хорошо получившаяся «Мини-Пустошь» успешно использовала общие принципы, выработанные в ходе разработки боевой системы. А теперь бой выделен в отдельный класс, который в перспективе можно будет использовать во всех случаях, требующих боя.
*провал во времени*
Небольшая сессия растянулась на двухдневную борьбу. После пары тестовых функций, я решил сделать визуальное отображений зелий лечения. Задумка следующая — зелья вырисовываются в ряд, по клику зелье выпивается, а при каких-либо изменениях ряд перерисовывается. После нескольких неудачных попыток сделать симпатичную бутылку в 3d (практика-то тоже нужна, теоретических знаний пятилетней давности не сильно хватает), был сделан векторный набросок:
Получилось довольно неплохо, как мне кажется. Для технических целей — тем более.
Немного документации и бутылки начали отрисовываться. Но дальше начались проблемы. Никаким известным способом бутылки не удалялись. Получалась отрисовка поверх, с наложением на неудалённые объекты. Десятки страниц форумов и документаций в итоге привели к простейшему решению в одну строчку. Совершенно неожиданное решение — размер массива данных можно просто сократить до 0, тем самым уничтожив все данные в нём. Отображаемые объекты удаляются отдельной очищающей функцией. Всё работает как часы.
Из интересного — после очередной неудачи, был создан новый файл и поиски решения начались с чистого листа и на самом примитивном уровне. Намного легче сначала выработать механизм и написать код, чем держать всю картину в голове и пытаться реализовать всё в «основном» файле проекта. Ниже — результат. 100% кода, ни одного поставленного вручную объекта (за исключением созданного квадрата для библиотеки). Первый опыт программной работы с графикой, отлично. Первый квадрат запускает генерацию и упорядочивает квадраты. Второй добавляет ещё один квадрат и запускает генерацию (квадраты выстраиваются). Клик по сгенерированному квадрату убирает его, в произвольном порядке. Функционал получился избыточный — для тех же зелий хватило бы и вовсе связки «картинка зелья + цифровой счётчик». Но в целях обучения — довольно интересно.
Заменяем одно слово в коде — и вот уже вместо квадратов появляются бутылки. Не знаю что с ними не так, может быть всё портит наложение с прозрачностью? Но общую суть понять можно.
Каков вывод? Чем больше всего перенесено в код — тем легче это модернизируется и тем большей гибкости можно достичь. А не получающиеся модели или системы стоит реализовывать в отдельных файлах, до получения работоспособного варианта.
No Comment.
Add Your Comment