день перший
хз з чого почати) нашвидкоруч намалював карту, Tiled у поміч
завелика вдалась, не розрахував, і переробляти ліньки
хоча для прототипу норм
хіба що спрайти дрібні як блохи (бо ж на холяву з інету)
може спробую намалювати власні колись (але це не точно)
день другий
спробував пописати диз.доки, хз як їх роблять
опсав трохи статів для загонів і тайлів, щось ще
було натхнення, зникло натхнення) напсав трохи коду
написав трохи коду, щоб спрайти руцями не завантажувати
навіть з метатаблицями трохи розібрався, мабуть
тепер маю глобальну змінну Sprite:
і завантажує, і обробляє, і кадри повертає
ще й усе робиться однією функцією Sprite()
зручно
замислився над розрахунками тайлів (або чарунків, може)
прописати вартість для кожного загону окремо? і це для кожного окремого тайлу!
і сподіватися, що нічого ніде не прогавлю)
або задати вхідні дані та навантажити розрахунками
як проц, так і гравця...
зрозумів, що туплю (та не вмію добре планувати, шкода)
зробив вхідні дані, і щоб воно само розрахувало усю вартість
так вийшло більше клопоту з кодом, однак тепер меньше шансів на помилку з неуважності
ну а що гравцю показати — це вже потім вигадаю
помудохався з lua-кодом карти, наче працює
прописав маштабування, щоб карта завжди влізала в екран (тимчасовий костиль)
ще перемикач вікно / повноекранний режим на F4
зробив днів за два-три, хз — так захопився процесом, що занотовувати забув та й ліньки
і ще десь у цьому проміжку розписав код, що виводить і нумерує усі тайли
заскрінив та зберіг, щоб легше було прописувати
пишаюсь собою
помітив проблему:
шрифт втрачає зглажування, якщо у повноекранному режимі
намагався зібрати екзе’шник
затуп №1: зробив архів .7z замість .zip, недогледів
через це "картридж" (.love-файл) довго відкривався, а конвертуватися й взагалі не схтів
затуп №2: не можна конвертуватися в екзе, якщо у папці Program Files
довелося переміщатися у Мої док-и
дописав карту
тепр кожна чарунка — це не просто картинка, а готовий до роботи набір даних
дописав курсор миші — тепер відображає координату і назву чарунки під курсором
радість
збільшив у 4 рази, 64 пікселі спрайт, ніби непогано, прикріплю скрін
(або хочаб спробую)
на такий розмір і буду орієнтуватися
порахував, наче минуло десь днів п’ять
ну як днів: коли вечорів, коли ранків
щоб аж цілий день над кодом пріти — змоги немає, життя
день 6–7
накидав приблизну перезарядку дій
це щоб не можна було двічи за хід пересуватися, наприклад
або щоб можна було, побачимо)
підійшов до реалізації пошуку шляхів
маю декілька ідей, не маю достатньо часу
наразі лише розумію, що за хід буду прораховувати усі чарунки
заради інтерфейсу та Ш.І., ну типу Ш.І.
згадалася Tactics Ogre, там фіча була:
коли тайл заскладний для проходження, перс може його перестрибнути
тепер цікаво, як там було реалізовано пошук шляху
хоча, відволікся
що там ще? оновився по фреймворку до 11.4
переписав купу коду
здувся вести нотатки)
день 8
написав маленьку, але дуже корисну функцію
розраховує вартість входження
function getMapCost(unit, cell)
local impass = 15
if not cell.data.vartist[unit.move.id] then
cell.data.vartist[unit.move.id] = unit.move.lvl > cell.data[unit.move.typ].lvl
and math.max(1, cell.data[unit.move.typ].pass - unit.move.pass)
or impass
end
local vartist = cell.data.vartist[unit.move.id]
if cell.unit then
vartist = unit.team == cell.unit.team and vartist or impass
end
return vartist
end
лишилося ще одну, приблизно таку
створю порожній масив на перевірку
додам туди стартову чарунку (місцезнаходження юніта)
і далі по циклу
якщо вартість входу сусідньої чарунки або відсутня, або має більше значення
у вартості шляху вказую розраховане значення, а чарунку додаю на перевірку
виглядає не складно
лишилося прописати
день 9
прописав, хоч і з помилками) основна маса з яких — невірно вказаний ключ до змінної
по пам’яті писати — таке собі, щоправда у vs code коментарі допомогають
тілько хз де цю тему прошарити
все виправив, працює, лишилося іще одну функцію
буде брати вказану чарунку та шукати найменшу вартість шляху серед сусідніх чарунок
власне кажучі, це і все — з пошуком шляху розібрався
далі мабуть навчу юнітів ходити
день 10
трошки пописав коду на відображення поля пересування
день 11
трохи прошарив ту фіговину у vs code
називалося анотаціями, ось так просто)
дуууже корисна штука
день 12
етап: від розуміння до застосування
засрав увесь код анотаціями)
схоже, що доведеться усе переписувати
день 13 (23.8.2022)
засів за написання мета-файлів
цілу папку для цього виділив
планування перепланування
день 14 (24.8.2022)
шукав армію, може ще будівлі якісь
переглянув 2239 спрайтів, трохи очманів
за якістю було усе: від мікро-збочення до топ-класу
дещо навіть зберіг — на потім
на зараз — доведеться ставити плейсхолдери
день 15 (25.8.2022)
планування, структурування, переписування
голова обертом, треба відпочити від усього цього
декілька днів, може з тиждень)
день 16 (26.8.2022)
за тиждень інтенсив, дуркувати ніколи
переписав структуру коду
день 17 (27.8.2022)
почав переписувати код за новою структурою
не подобається
усе у смітник, разом із папкою мета-файлів
переписую знову
тепер ніби подобається
» день 18 (28.8.2022)
ще трохи переписав
» день 19 (29.8.2022)
і ще трішечки... зовсім трошки.... клята спека доканає (ні)
схоже, просто зникає ентузіазм, коли задачка вже розв’язана
взявся за юнітів, щоб не гаяти час
паралельно хтів розписати усіх юнітів, що будуть у грі
вийшло: просто повторив тих, що вже на спрайтах <_<
треба викинути спрайти з голови
код
мало бути ось так
(не код, чисто для наочності)
але так марную дофіга часу просто щоб вказати змінну
не хочу
краще буду писати ось так
(шматок готового коду)
ну так, трохи головняк бо в Lua немає жорсткої типізації даних
хоча там і свої плюси, я гадаю
» день 20 (30.8.2022)
шо по коду юнітів буде
поля:
- ім’я
- гравець
- команда (якщо спроможусь на мультиплеєр)
- початкові стати
- спрайти (або спрайт, бо на холяву анімація дзуськи)
- хітпоінти
- очки дій (1–2 для юнітів, будівлі — до 4-х)
- вартість найму
- черга (типу як в тактичних рпг’шках буває, ну а шо?)
- розмір (для транспортування)
- і може витривалість ще, але це не точно
дії:
- чекати (змінює чергу)
- відпочивати, щоб відновити здоров’я (але здебільшого витривалість, якщо буде)
- захищатись (баф захисту, може ще які фічі з прокачкою)
- рухатись
- атакувати
- звести будівлю (селяни та інженери)
- захопити будівлю (лише піхота)
- завантажитись (у транспорт)
- розвантажитись
- об’єднати (однотипні) загони
корочше, дофіга роботи прямо по курсу
далі буде