База данных на основе CSV файлов+подгруз спрайтов через URL

другие уроки, мануалы, советы по Construct 2

Сообщение База данных на основе CSV файлов+подгруз спрайтов через URL
» 27 янв 2017, 23:02

Добрый день!
Я люблю таблички в Excel и Google Doc - это удобно и быстро для визуализации игры, построения баланса итд. Вот и вышло у меня заморочится по поводу подключения моих табличек к игре. Очень хочется поплакать здесь и поныть сколько у меня ушло времени на поиск информации, но тема не об этом)

Первое что делаем - таблицу. Ячейка 0,0 должна быть пустой! Иначе данные будут неверно прочитаны. В моем случае это две таблицы - мы их будем связывать по названию скиллов.
Изображение
Изображение
Первая таблица содержит список классов, которые есть в нашей игре. Вторая - описание всех способностей (включая URL изображения - об этом в конце поста).

Далее сохраняем наши таблицы в формате CSV. Это можно делать как в Excel так и в Google. (Файл->Скачать как->CSV)

Чтобы Конструктор работал с ними как с массивами, нам понадобится плагин CSV многоуважаемого RexRainbow.
http://c2rexplugins.weebly.com/rex_csv.html
Советую вообще все его плагины поставить - лишним не будет. К тому же они все упакованы в один установщик.

Ну и поехали. Создаем новый проект, добавляем AJAX - эта штука будет считывать наш CSV файл (так как сам плагин этого делать не умеет).
Добавляем CSV плагин,3 текста, 3 спрайта и одну кнопку, которую копируем еще 2 раза.
Все это счастье нам нужно для выведения информации из таблиц.
Изображение
Далее импортируем наши таблицы в проект - правой клавишей на папку Files в окне проекта -> Import Files - и выбираем наши таблицы.

Изображение
На старте лейаута заставляем AJAX читать первую таблицу - Class.csv с помощью команды Request. В памяти самого AJAX эта таблица будет иметь тэг "Классы". Я старался максимально использовать русские слова, чтобы упростить для себя и вас написание, да и проверить на возможные конфликты заодно.
Когда чтение "Классы" завершено, загружаем данные в CSV плагин.

CSV представляет из себя многомерный массив, к которому мы можем обращаться как с помощью цифр (столбец,строка), так и с помощью названий этих самых столбцов и строк. Например запрос CSV.At("Урон","Лава") эквивалентен CSV.At("1","2").

По умолчанию первая страница в CSV имеет название "_" - это можно менять с помощью команды Turn the page.
Таким образом таблицу Class.csv мы загрузили на страницу "_" а таблицу "Skills.csv" на страницу "2".

Ну и само волшебство:
По нажатию на кнопку, мы проверяем локальную переменную ClassText (Пришлось её добавить, так как конструктор не дает напрямую считывать текст с самой кнопки) она собственно дублирует то, что написано на самой кнопке.
Мы получаем значение - например "Маг" - и в текстовые поля записываем названия скиллов для Мага со страницы "_" (если не писать название страницы, будет использована текущая).

После этого нам нужны URL изображений из таблицы скиллов. Используем команду Load image from URL для пустых спрайтов. Указывая столбец "Картинка", а название скилла берем из Text, не забывая указать вторую страницу CSV.At("Картинка",Text.Text,"2").

Результат:
Изображение

Самое крутое, что нам не нужно запихивать все картинки в проект! Достаточно хранить актуальные ссылки на изображения скиллов где-нибудь на стоке или хосте - тут главное чтобы сервер разрешал свободное считывание Access-Control-Allow-Origin, иначе считываться будет только одна картинка или вообще ни одной - промучился сутки с гугл доками, пока не понял почему у меня оттуда только один URL читался.
Я лично использовал "photobucket.com" - потому что нашел данные, что сервер спокойно дает мне считывать URL.
Изображение
Сначала выбрал нужные иконки скиллов, потом закачал их на сайт, и потом выбирая каждую по очереди, копировал прямую ссылку (как показано на картинке) и вставлял её в гугл таблицу.
Изображение

Ну и на последок - если будете импортировать исправленные таблицы CSV - помните, что при удалении объекта удаляются все команды, связанные с ним. Так что сначала импорт новой таблицы, потом подключение к ней AJAX, а только потом удаляйте старую.
CSV_database load.capx
(655.64 КБ) Скачиваний: 39
Аватара пользователя

Участник
Сообщений: 14
Я тут с 26 мар 2015
Репутация 0 [ ? ]

Сообщение База данных на основе CSV файлов+подгруз спрайтов через URL
» 28 янв 2017, 00:59

Но ведь есть визуальный редактор массива... (Да и свой можно без особых напрягов сделать, было бы желание)
Зачем городить костыли с использованием сторонних плагинов?
Аватара пользователя

Игродел
Сообщений: 1141
Я тут с 06 июл 2015
Репутация 289 [ ? ]

Сообщение База данных на основе CSV файлов+подгруз спрайтов через URL
» 28 янв 2017, 09:48

Уважаемый, это просто один из вариантов как можно организовать данные в игре. Для меня - это очень удобный способ потому что:
1. Таблицы экселя (родненькие)
2. Обращение к ячейке по названию а не по цифре (лично для меня муторно запоминать в каком столбце что там у меня написано в каждой таблице)
3. По поводу сторонних плагинов - это тоже индивидуально - не вижу в них ничего плохого)

Я был бы вам очень благодарен за более развернутый ответ по поводу визуального редактора - может я чего-то не знаю, и можно было действительно проще все это сделать.
Спасибо.
Аватара пользователя

Участник
Сообщений: 14
Я тут с 26 мар 2015
Репутация 0 [ ? ]


Сообщение База данных на основе CSV файлов+подгруз спрайтов через URL
» 15 мар 2018, 00:05

fastblader, получаешь предупреждение за скрытое оскорбление в репутации у Bishop'а "Gbljh negjhsksq. Ktptn cj cdjbvb rjvvtyfnfhbzvb relf yflj b relf yt yflj". еще подобное повторится - будет карантин :acute:
Аватара пользователя

Администратор
Сообщений: 6293
Я тут с 05 сен 2012
Двиг: Construct2
Лицензия: Personal
VK: gabrielsailergray
Репутация 436 [ ? ]



Вернуться в Другие уроки по Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх