Первая игра в редакторе: герой на экране и движение по клавишам
За этот урок герой появится на экране и начнёт ходить по клавишам. Код писать не нужно: логика собирается из нод — блоков вроде «каждый кадр → сдвинуть героя». Всё делается в браузере, ставить ничего не надо.
1. Что где находится
- Нажмите «Создать проект» и выберите заготовку игры или пустой проект. Редактор откроется сам.
- Слева узкая полоска. Кнопка ▶ запускает игру. Ниже инструменты: нодовый редактор, редактор карт, UI-редактор и таблицы. Внизу шестерёнка: настройки и выпуск игры.
- Справа чат с AI-помощником. Его можно свернуть кнопкой ⇆ или сузить, потянув за левый край.
- Всё хранится на сервере в файлах проекта. Ставить программы не нужно.
2. Кто за что отвечает
- Редактор карт — ГДЕ что стоит: земля, стены, предметы, точка появления игрока.
- Нодовый редактор — ЧТО происходит: движение, рисование, камера, столкновения. Нет ноды — нет поведения. Объект на карте сам не ходит и не рисуется.
- UI-редактор — экраны поверх игры: меню, счёт, кнопки.
- Таблицы — данные, которые вы задумали заранее: опыт до уровня, предметы и цены, лут, характеристики врагов.
- Картинки и звуки: сначала загрузить, потом зарегистрировать, потом использовать в нодах.
3. Загрузить картинку или звук
- Перетащите файл с компьютера в окно любого редактора.
- В нодовом редакторе картинки лягут в
img/, звуки вaudio/. - В редакторе карт картинка ляжет в открытую папку
img/, в UI-редакторе — вui/img/. - Файл с таким именем уже есть — редактор спросит, заменить ли. Точную копию под другим именем не загрузит и скажет, с каким файлом она совпала.
- Кнопка «Стор» — готовые ассеты из магазина. «Добавить в проект» кладёт файлы сразу в проект.
- Картинки: png, jpg. Звук: mp3, ogg, wav.
- Картинки при загрузке сжимаются, как в TinyPNG: имя и размер в пикселях те же, файл легче. Нужен оригинал до пикселя — поставьте галочку «Оптимизация: без потерь» на панели картинок.
4. Зарегистрировать картинку
- Нода возьмёт картинку, только если та есть в списке. Список — файл
assets/images.json. - Откройте его в нодовом редакторе: папка
assetsслева. Снизу появится панель с файлами изimg/. - Перетащите файл на холст. Появится нода Register Image с именем файла.
- Ctrl+S. Плитка с галочкой ✓ уже добавлена.
- Звуки так же: файл
assets/audio.json, нода Register Sound.
5. Мышь и клавиши
- Двойной клик по пустому месту или Tab — поиск ноды. Наберите название, Enter.
- Связь: тяните от кружка выхода к кружку входа. Белые порты — порядок выполнения, цветные — данные.
- Число или текст можно вписать прямо в поле ноды, ничего не подключая.
- Колесо — зум. Два пальца по тачпаду — двигать холст. Space + тянуть или средняя кнопка — тоже.
- Delete — удалить. Ctrl+Z — отменить. Ctrl+C и Ctrl+V — копировать. Ctrl+L — расставить ноды красиво. Ctrl+M — свернуть выделенные вычисления в метод модуля.
- Ctrl+S или кнопка Save — сохранить. Можно и не сохранять перед тем, как открыть другой файл: правки подождут в браузере и вернутся, когда вы откроете файл снова. Save записывает на диск и их тоже.
6. Создать объект (сущность)
- Сущность — пустая коробка. Компоненты — что в ней лежит: позиция, картинка, метка «игрок».
- В
game.json: On Start → Create Entity. - К выходу
entityподключите Add Position (x,y) и Add Sprite (textureиз Image Asset,width,height). Белых портов у них нет: они вешаются на сущность. - Игроку добавьте Mark As Player. Он попадёт в запрос
player. - После Create Entity по белому порту — Register Entity. Без этого системы объект не увидят.
- Для столкновений: Add Collider Rect или Add Collider Circle.
7. Нарисовать все объекты
- Слева у папки
systemsнажмите «+». Двойной клик по файлу — переименовать, например вdraw.json. - Внутри: On System Update → Draw Map Below → For Each Entity с запросом
sprite→ Draw Map Above. - В ветку
bodyцикла: Draw Image.layer— из Get Layer (world). - Get Component (
entity,sprite):texture→texture,widthиheight→dstWиdstH. - Get Component (
entity,position):x→dstX,y→dstY. Сдвиг картинки — прибавьтеoffsetчерез Vector2 X, Vector2 Y и Add. - В
game.json: Add System, выберитеdraw.json. Ctrl+S, ▶.
Draw Map Below и Draw Map Above рисуют карту под объектами и над ними. Карты нет — они ничего не делают.
8. Двигать по клавишам
- В
game.json: Register Action. Нажмите кнопку на ноде, потом клавишу D. Вactionвпишитеright. Ещё одна нода: A иleft. - Новый файл
systems/move.json: On System Update → For Each Entity с запросомplayer. - В ветку
body: Branch. Входcondition— из Action Pressed (right). - В ветку
true: Add To Component Fields (entity,position). Входx— Multiply: скорость 200 ×deltaс выхода On System Update. - Для
left— то же со скоростью −200. Для вверх и вниз — полеy. - В
game.json: Add System сmove.json— вышеdraw.json.
Умножайте скорость на delta: тогда она одинакова на быстрых и медленных компьютерах.
9. Запустить игру
- Кнопка ▶ слева сверху.
- Редактор сам сохранит открытый файл, соберёт проект и откроет игру в новом окне.
- Окно не появилось — браузер заблокировал всплывающее окно. Разрешите его для сайта.
- Ошибка сборки покажется сообщением: в нём файл и нода, которые нужно поправить.
- Чёрный экран — нет системы отрисовки или картинка не зарегистрирована.