Как связать сигнал с функцией в Godot 3.1

Лирическое отступление

Делая обучающий проект по плейлисту от Angega Studios, я столкнулся с одним неприятным моментом: повторяя все действия, как обезьянка, я не мог достичь того результата в Godot, который был на видео.

В частности, меня смущало, что автор использует предварительную загрузку файла с собственными скриптами-заготовками, которые вызывал через запись:

utils.название_функции

К тому же, попытка подключить файл utils.gd не увенчался успехом: Godot 3.1 выдавал ошибки, а у меня не было желания разбираться с тем, что я не буду использовать в ближайшее время.


Проблема и решение

Работая с уроком №13 я обратил внимание на то, что изначально мы создали сигнал в ship.gd, а после начали прикреплять его к скрипту спрайта с полоской жизни (момент на 1:50).

Так как я не использую utils.gd в своей работе, я пытался разобрать составляющие скрипта attach() и вставить эту функцию в сам скрипт спрайта. Не помогло, но погуглив, я нашёл решение.

Связать сигнал с функцией можно простым способом:
(все названия идентичны обучающему плейлисту)

1. Для начала создайте сигнал в том скрипте, откуда надо передавать сигнал. В нашем случае это сигнал armor_changed в файле ship.gd

2. Откройте stage_game.tscn, во вкладке Scene кликните на ноду ship, перейдите во вкладку Node и найдите исходящий сигнал:

3. Нажмите правой кнопкой мыши по исходящему сигналу armor_changed() и нажмите «Connect…»

4. Выбираем ноду, к которому обращаемся при создании сигнала (1), указываем названием метода, который будет связывать сигнал и ноду (2), включаем «Make Function» (3), если нужно создать функцию с таким методом.

Если функция у вас уже создана, то переключатель можно перевести в положение OFF, но не забудьте указать корректное название своего метода в ноде.

Жмём на кнопку «Connect», переходим в скрипт ноды, к которой прикрепили сигнал и пишем код, который будет выполняться при поступлении сигнала:

Напомню, что в нашем примере из видеоурока необходимо изменить значение Frame в разделе Animation на то значение, которому равна переменная armor.

Протестировано и работает в Godot 3.1.

Как я _заново_ учился вёрстке

Как я учился вёрстке (заново)

На днях закончил курс по вёрстке у Жени Родионова и хочу поделиться впечатлениями + что было сделано.

Во-первых, курс отлично автоматизирован и ни к чему не привязан: читай задания, выполняй их в свободное время, приобретай навыки.

Во-вторых, курс очень плотный: никаких тебе видео и вебинаров, только максимальная выжимка в виде текста для выполнения задания.

В-третьих, мощный фидбек: ты сразу попадаешь в чат своей группы, где Женя и другие участники без проблем помогают советом или нужной ссылкой из Гугла.

В-четвертых, курс заставляет делать ошибки. Звучит дико, но на практике это построено как переход от говно-кода к лучшим практикам.

Поясню на примере: на одном из задании я строил модульную сетку. Сделал всё задание, но не покидало чувство, что сетка работает не так, как я привык, верстая лендинги — появились лишние мерзкие отступы слева и справа у контейнера, в котором хранится контент.

Пересмотрел урок. Перебрал код. Снова пересмотрел урок. Снова перебрал код. Ничего кардинально не изменилось.

На следующий день приходит урок в котором говорится, что у нас вылез мерзкий баг с отступами и вот как его править…

Что по итогу:

  1. Научился базово работать с консолью и Git. Безумно удобная штука (я про Git), благодаря которой есть возможность хранить все версии своей работы, при желании быстро откатываясь к прошлым изменениям.
  2. Завёл аккаунт на GitHub, куда опубликовал работу с курса.
    1. После общения с фронтэндером нашей команды понял, что не стоит коммитить и пушить каждый свой чих в коде.
    2. Используя методологию БЭМ, адаптивно сверстал одну и вторую страницы сервиса UberEats:
  3. За 2 недели актуализировал и сильно укрепил навыки вёрстки.

Если ты новичок и хочешь прокачать свои навыки в вёрстке, научившись правильно и адаптивно верстать странички — вэлком на курс Жени: https://erodionov.ru/verstka/

Как ускорить аудио в Audition

Открываем файл в Audition через File — Open (сочетание клавиш Ctrl+O)

Как ускорить аудио в Audition

Нажимаем EffectsTime and PitchStretch and Pitch (process)

Как ускорить аудио в Audition

Регулируем скорость аудио в процентах напротив надписи Stretch. Значение больше 100% замедляет аудио, менее 100% ускоряет его.

Как ускорить аудио в Audition

Алгоритм обработки пробуйте под себя, в моём случае более качественный результат выдал алгоритм «Audition».

Как я переехал на WordPress

Спустя год кочевничества с одной темы оформления на другую я понял, что не найду тему, устраивающую меня на 100%. Решение было очевидно — собственная тема для WordPress, написанная с нуля. Но как это сделать, если умеешь только в HTML и CSS, а WordPress использует в работе PHP?

Я следовал старому плану: сверстать страницы с помощью HTML и CSS. Это создавало трудности, так как вынуждало создавать новые страницы для записей в блоге, проектов и портфолио. Использование WordPress облегчало эту задачу, так как генерация новых страниц происходила бы через панель управления, но… Как сделать свою тему с нужным мне дизайном?

Как это сделать я ещё не знал, но для начала занялся оформлением. Я ценю минимализм в интерфейсе, поэтому сел за Фотошоп и за пару часов набросал 2-3 варианта оформления.

Итоговый вариант

Дальше вёрстка. Главная, страница «Обо мне», «Контакты», страница блога… Работа спорилась, но меня не покидала мысль, что идея разместить свои проекты и блог на статических страницах изначально неудачна и бесперспективна. Закончив вёрстку, я отложил это дело на выходные.

Я знаю про создание блогов на Ruby on Rails, что многие ребята используют эту связку для разворачивая своих проектов, но WordPress казался мне более простым в освоении.

Отдыхая без интернета и работы я решил разобраться с WordPress и перенести свои статические странички в адекватный динамический сайт.

В этом деле мне помогла статья на Хабре, в которой разбирали процесс «натягивания» дизайна на WordPress, кодекс и справочник по функциям. Последний на английском, но многие пункты переведены и доступны в Гугле.

Не обошлось без казусов и тупняков:

  • кнопка «Читать далее» открывала статью на середине;
  • стили оформления упорно не подключались, поэтому я прописал их напрямую в header.php;
  • отобразить блог как главную страницу, при этом сохранив ссылку в меню не как произвольную ссылку, а как ссылку на страницу я так и не смог.

В остальном я доволен результатом. Своя тема оформления подразумевает гибкую настройку визуального отображения и минимум лишнего мусора в коде.

Из «мусора» меня сразу смутила функция, которая генерировала огромное количество лишнего кода: <?php wp_head(); ?>

Оказалось, что она нужна для работы плагинов, а некоторые из генерируемых строчек отключаемы, но выключать их я не стал: просмотрев код, который подключает функция, решил, что проще прописать две нужных строчки напрямую в header.php

Конечно, WordPress подойдёт не для всего: размещать лендинг на его базе — спорное решение. Хотя я встречал заказы на создание лендинга на WordPress: клиенты хотят самостоятельно менять контент на сайте, не привлекая верстальщиков или программистов. Но для блогов, многостраничных сайтов, размещения портфолио и даже для интернет-магазинов WordPress — интересное и хорошее решение.

UPD (4 декабря 2017 года):
Свою тему я решил временно убрать, установив стандартную тему WordPress. Причины: отсутствие глубокого понимания, как работает WordPress в плане защиты сайта от взлома, недостаточная гибкость в работе из-за банального отсутствия некоторого функционала, который надо дописывать. А на это пока нет времени.