Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Это захватывающая 2D рогалик, аркадный шутер и динамичная игра. Исследуйте уникальные уровни, уничтожайте врагов, собирайте монеты и прокачивайте своего персонажа.

Подземелье дизлайков

Экшены, Аркады, Шутер

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Developer + Программирование

С этим тегом используют

Gamedev Android Игры IT Программист IT юмор Разработка Python Картинка с текстом Юмор Все
204 поста сначала свежее
351
tproger.official
tproger.official
1 год назад
Типичный программист

На каждый интуитивно понятный интерфейс всегда найдется юзер потупее:⁠⁠

IT IT юмор Разработчики Программист Пользователи Программирование Видео Повтор
36
53
GoblinCave
GoblinCave
1 год назад
Лига Разработчиков Видеоигр

Готовлю для вас интересный материал по созданию 2D персонажа через нейронки, а пока делюсь наработками. Ссылка на саму неросеть внизу поста⁠⁠

Готовлю для вас интересный материал по созданию 2D персонажа через нейронки, а пока делюсь наработками. Ссылка на саму неросеть внизу поста Программист, Разработка, Программирование, Gamedev, Инди игра, Арты нейросетей, Нейронные сети, Дизайн, Создание персонажа, Разработчики, 2D, 2D анимация, 2d рисование, Stable Diffusion, Гайд, Инди, Digital, Компьютерная графика, Длиннопост

Удачные варианты - партия №1

Готовлю для вас интересный материал по созданию 2D персонажа через нейронки, а пока делюсь наработками. Ссылка на саму неросеть внизу поста Программист, Разработка, Программирование, Gamedev, Инди игра, Арты нейросетей, Нейронные сети, Дизайн, Создание персонажа, Разработчики, 2D, 2D анимация, 2d рисование, Stable Diffusion, Гайд, Инди, Digital, Компьютерная графика, Длиннопост

Удачные варианты - партия №2

Готовлю для вас интересный материал по созданию 2D персонажа через нейронки, а пока делюсь наработками. Ссылка на саму неросеть внизу поста Программист, Разработка, Программирование, Gamedev, Инди игра, Арты нейросетей, Нейронные сети, Дизайн, Создание персонажа, Разработчики, 2D, 2D анимация, 2d рисование, Stable Diffusion, Гайд, Инди, Digital, Компьютерная графика, Длиннопост

Милые варианты - партия №1

Готовлю для вас интересный материал по созданию 2D персонажа через нейронки, а пока делюсь наработками. Ссылка на саму неросеть внизу поста Программист, Разработка, Программирование, Gamedev, Инди игра, Арты нейросетей, Нейронные сети, Дизайн, Создание персонажа, Разработчики, 2D, 2D анимация, 2d рисование, Stable Diffusion, Гайд, Инди, Digital, Компьютерная графика, Длиннопост

Парад уродов

Данные персонажи создаются через нейронку Stable Diffusion. Использовал инструменты с сайта OpenArt. За основу взят вот этот товарищ:

Готовлю для вас интересный материал по созданию 2D персонажа через нейронки, а пока делюсь наработками. Ссылка на саму неросеть внизу поста Программист, Разработка, Программирование, Gamedev, Инди игра, Арты нейросетей, Нейронные сети, Дизайн, Создание персонажа, Разработчики, 2D, 2D анимация, 2d рисование, Stable Diffusion, Гайд, Инди, Digital, Компьютерная графика, Длиннопост

Пока что экспериментирую, собираю получившиеся варианты. В дальнейшем буду вырезать понравившиеся детали и как в конструкторе собирать новые образы для анимации в Dragon Bones.

Подпишись, чтобы увидеть итог эксперимента!

Показать полностью 4
[моё] Программист Разработка Программирование Gamedev Инди игра Арты нейросетей Нейронные сети Дизайн Создание персонажа Разработчики 2D 2D анимация 2d рисование Stable Diffusion Гайд Инди Digital Компьютерная графика Длиннопост
5
18
Shawurma
Shawurma
1 год назад
Инкогнито

Мне его так жаль⁠⁠

Взято из телеграмма - Инкогнито

Мне его так жаль IT, IT юмор, Программирование, Программист, Юмор, Open Source, Разработчики, Мемы, Картинка с текстом, Свидание
Показать полностью 1
IT IT юмор Программирование Программист Юмор Open Source Разработчики Мемы Картинка с текстом Свидание
4
Neurosonya
Neurosonya
1 год назад
Серия Полезность

ИИ-поисковик для кодеров Rix⁠⁠

Сервис RIX оптимизирован для разработчиков и позволяет быстро находить самые релевантные ресурсы и примеры кода, отвечая на ваши запросы.

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

Но это еще не все  RIX не только умеет искать ответы, он даже может генерировать код по вашему запросу! Достаточно загрузить код или даже целый сайт, и вы получите от поисковика готовые ответы на все свои вопросы.

Показать полностью
Чат-бот Полезное Искусственный интеллект Нейронные сети Python Код Кодеры Программирование IT Программист Разработка Разработчики Видео
0
rabota.pikabu
rabota.pikabu
1 год назад
Пикабу Работа
Серия Вакансии в IT

Стажировка для разработчиков⁠⁠

Компания: Авито
Формат: удаленная

Стажировка в Авито — это классная возможность начать работу в командах с сильной экспертизой в продуктовой разработке. Вы будете работать над реальными задачами для бизнеса и сможете напрямую влиять на продукты для миллионов пользователей.

Что вы получите

  • Продвинутого наставника и комьюнити. У каждого стажёра будет опытный наставник, который учит и помогает.

  • Реальные рабочие задачи, зарплату и ноутбук. С первого дня вы будете помогать командам решать важные задачи. Это время оплачивается, мы компенсируем питание и выдаём ноутбук.

Отправьте ваш отклик до 14.08!

Откликнуться на вакансию →

[моё] IT Разработчики Удаленная работа Программирование Вакансии Поиск работы Собеседование Стажировка Текст
60
Shawurma
Shawurma
1 год назад
Инкогнито

А fullstak dev делает все плохо⁠⁠

Взято из телеграмма - Инкогнито

А fullstak dev делает все плохо IT юмор, Программирование, IT, Программист, Юмор, Frontend, Backend, Web-программирование, Разработчики, Скриншот, Картинка с текстом
Показать полностью 1
IT юмор Программирование IT Программист Юмор Frontend Backend Web-программирование Разработчики Скриншот Картинка с текстом
1
21
Shawurma
Shawurma
1 год назад
Инкогнито

И еще на всякий случай в верх⁠⁠

взято из телеграмма - Инкогнито

И еще на всякий случай в верх IT юмор, Программирование, IT, Программист, Юмор, Скриншот, Пост, Картинка с текстом, Разработчики
IT юмор Программирование IT Программист Юмор Скриншот Пост Картинка с текстом Разработчики
9
Партнёрский материал Реклама
specials
specials

Как бросить курить и не сорваться: инструкция от тех, кто смог⁠⁠

Выходишь покурить на пять минут, а возвращаешься через 10 лет: с хрипом, тремя неудачными попытками бросить и пачкой мятных жвачек в кармане. Это как плохой сериал: тянется слишком долго, а финал все равно разочарует. Но выйти из этого сценария можно и даже не обязательно драматично. Мы собрали истории тех, кто боролся с зависимостью ради любимого человека, здоровья или лучшей жизни.

Как бросить курить и не сорваться: инструкция от тех, кто смог Курение, Борьба с курением, Зависимость, Telegram (ссылка), ВКонтакте (ссылка), Длиннопост

История 1 — отражение

@holoroad

Маленькая дочка почти научилась ходить и всюду телепалась за мной. Я не курил при ней. Ходил на балкон, а она, прильнув к стеклу, смотрела на меня и ждала, когда я докурю и выйду к ней. И в какой-то момент она начала повторять за мной вот эти движения. Маленький человечек, ей было года полтора или два, прикладывала воображаемую сигарету к губам, а потом делала вид, что выпускает дым. И весело так на меня смотрела, сквозь стекло балконной двери. Ей нравилось все, что со мной связано, и она подражала всем моим действиям. Я курил уже двадцать лет и, конечно, делал множество попыток бросить до этого. Но в этот раз у меня в первый раз появилась по-настоящему важная причина бросить. Это важно для человека, который безгранично мне доверяет. С тех пор прошло почти десять лет, в течение которых я не сделал ни одной затяжки.

Решение бросить курить — одно из лучших, которое вы можете принять для своего здоровья, будущего и близких. Но справиться с зависимостью только потому, что «это вредно» будет тяжело. А вот если хотите не задыхаться, поднимаясь по лестнице, или волнуетесь за своего ребенка, которые вдыхает табачный дым, — уже другое дело.

Сформулируйте, что для вас значит отказ от никотина. Это может быть желание прожить дольше, избавиться от проблем со здоровьем, выглядеть моложе, сэкономить деньги или защитить близких от пассивного курения. Напоминание об этой причине повесьте на видное место.

История 2 — список

@maxneb

Беременность жены, рождение ребенка, здоровье, деньги — ничего не было веским поводом бросить окончательно. Постоянно срывался. Помогло составить список, что теряю и что получаю от сигарет, и понимание, что хотя бы одна затяжка — и все насмарку: пару месяцев буду курить. Только список и его осознание. Для каждого он свой. И постоянное обращение к нему. После составления списка курил еще. Но он как заноза висел в голове с вопросом «зачем?»... Так, что-то щелкнуло и сейчас не тянет. Иногда тянет физически, но осознание бесполезности курения сразу глушит позывы. Полгода, полет нормальный...

Бросать на авось — идея, которая подойдет не всем. Нужно понимать, что делать в трудные моменты:

  • Определите дату отказа. Подготовьтесь морально, уберите сигареты, зажигалки, пепельницы.

  • Замените привычки. Сигарету в руках можно заменить орешками, палочками морковки, жвачкой или даже кубиком льда.

  • Займите время. Вспомните, чем вы любили заниматься: спорт, хобби, прогулки.

  • Планируйте, что делать при тяге. Она длится всего 3–5 минут. Дыхательные практики или звонок другу помогут пережить сильное желание закурить.

  • Откажитесь от «наградных сигарет». Одна затяжка и вы откатитесь назад.

Можно бросить резко, «с понедельника», или постепенно, снижая количество сигарет до нуля. Главное — определиться и не отступать.

История 3 — переключение

@Spaka

45 лет, стаж 30. Пытался завязать много раз, потом понял, что после каждой попытки бросить, курить начинаешь больше. Как ребенок, которому не дают вкусняшку, а она случайно попала ему в руки. Из чего мозг сделал вывод: не уверен — не бросай. Потом стал замечать, что организм уже стал сам просить перестать курить. По утрам было очень неприятно во рту, удовольствие после сигареты стало короче, а негатив, приходящий следом, ощутимее: неприятные ощущения в горле, боли миндалин, страх схватить онкодиагноз. Хотя врачи говорили, что все ок, в голове-то гоняешь мысли. Я решил попробовать обмануть сам себя. Не делать из процесса отказа какого-то события. Бросить так, как будто это и должно было произойти, но ты не знаешь когда. Про себя помолился, как сумел, и попросил помощи, хитро прищурил глаз и в момент, когда забыл купить про запас (оставалась пара штук в пачке), просто перестал курить. Мне теперь даже странно, как я раньше это делал. Так и живу почти два года. Кстати, раньше в момент завязки курящих ненавидел, дым был очень противен, до тошноты. Теперь все равно. Присоединяйтесь ;)

Есть несколько стратегий отказа от курения:

  • Резкий. Эффективный и решительный подход.

  • Постепенный. Сначала — меньше сигарет, потом — меньше затяжек. И так до нуля.

  • Психологическая замена. Каждая сигарета — это ритуал. Найдите для каждого из них «здоровую замену».

  • Медикаментозная терапия. При сильной зависимости врач может порекомендовать никотинозаместительную терапию (пластыри, таблетки, жвачки) или препараты, которые помогают справиться с синдромом отмены. Но любые лекарства принимаются только по рекомендации специалиста.

Каждый, кто хочет оставить зависимость в прошлом, может обратиться в центры здоровья, которые работают при поддержке нацпроекта «Продолжительная и активная жизнь», и получить необходимую помощь специалистов. Адреса доступны на официальном портале Минздрава России о здоровье: takzdorovo.ru. Также можно позвонить на горячую линию по отказу от зависимостей 8 800 200-0-200.

История 4 — форма

Аноним

Курила электронки 2 года как замену обычным сигаретам. Думала, что это не так дорого, не так вредно да и для девушки вроде более привлекательно: не пахнут волосы и руки. А потом решила привести свое тело в форму. Стала ходить в зал и поняла, что задыхаюсь на первом же упражнении, хотя женщины гораздо старше меня бодрячком. Было очень тяжело слезть. Друзья советовали заменять сигаретами. А потом уехала в отпуск в страну, где нельзя покупать электронки, отвлеклась, и после возвращения уже не тянуло. Даже на тусовках, где все дымят.

За модными гаджетами и фруктовыми ароматами скрывается химическая бомба, разрушающая организм быстрее, чем обычные сигареты. Электронные сигареты активно продвигаются производителями как «безопасная» альтернатива сигаретам. Но курение вейпа может обернуться серьезными проблемами: от кашля и одышки до поражения сосудов и дыхательных путей.

«Особую тревогу вызывает рост потребления табачных изделий и электронных сигарет. Согласно исследованию, проведенному в нашем Центре, 36,8% курильщиков потребляют одновременно и табак, и электронные сигареты. Среди молодежи в возрасте 25-39 лет этот показатель превышает 45%. Электронные никотиносодержащие и безникотиновые устройства поражают сердце, сосуды, дыхательную систему и ДНК организма не менее пагубно, чем традиционные сигареты, а в ряде случаев способны вызывать острые состояния, включая сосудистые поражения и летальные исходы» – рассказывает руководитель Центра профилактики и контроля потребления табака НМИЦ терапии и профилактической медицины Минздрава России Маринэ Гамбарян.

История 5 — пари

@kernima

Вроде не было никаких серьезных предпосылок, чтобы бросить. Да и чтобы начать: просто все вокруг курили, думал, это сейчас тренд. А потом как-то сидели в баре и решили поспорить с некурящим другом. Он затирал, что моя жизнь из-за электронки катится ко дну, я — доказывал, что это всего лишь маленькая шалость. В общем поспорили на пять тысяч. Чтобы было легче и можно было отвлечься, начал бегать по утрам. Друг проиграл, а я возвращаться к курению не стал. Вдруг снова у еды появился вкус, я начал высыпаться и больше не устаю на втором лестничном проеме. Короче, советую!))

Сульфат никотина, один из компонентов электронных сигарет, раньше использовали как пестицид, но запретили из-за высокой токсичности. Жидкость для «электронок» содержит и опасные химикаты вроде пропиленгликоля, ацетальдегида и акролеина — промышленных веществ, способных вызывать воспаления, поражения органов и мутации клеток. Ароматизаторы, создающие иллюзию безвредности, на деле могут привести к более тяжелой интоксикации, чем при курении сигарет. А еще вейпы содержат не природный, а синтетический никотин — солевой. Он быстрее всасывается, дольше выводится и вызывает зависимость стремительнее.

Когда организм отвыкает от никотина, бывает нелегко: люди становятся раздражительным и нервозными, быстро устают, возникают сухость во рту, кашель, трудности с концентрацией. Важную роль в борьбе с этими симптомами играет питание. В рацион стоит включить овощи, фрукты, орехи, семечки. Клетчатка способствует очищению организма от токсинов. Важно питаться сбалансировано: с достаточным количеством белков, жиров, углеводов и витаминов. Лучше временно исключить продукты, усиливающие удовольствие от табака (например, мясо), а также отказаться от алкоголя, кофе и крепкого чая. Они могут спровоцировать желание закурить. А вот большое количество воды, травяных чаев и настоев облегчит очищение организма и поможет справиться с сухостью во рту.

История 6 — связь

Аноним

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

Чтобы добиться успеха в отказе от курения, стоит подготовиться. Обязательно расскажите о своем решении друзьям и близким — поддержка со стороны очень важна. Если вы уже предпринимали попытки бросить, вспомните, что тогда пошло не так, и постарайтесь не повторять этих ошибок.

Разберитесь, что именно тянет вас к сигарете: скука, стресс, привычка? Когда вы это осознаете, будет легче подобрать альтернативные действия — прогулку, книгу, разговор с близким. Учитесь распознавать моменты, когда особенно хочется закурить, и переключаться на что-то другое. Можно подключиться к программам или группам поддержки — это поможет не сдаваться. И главное: уберите из дома все сигареты.

История 7 — вершина

Аноним

Поднимался с сыном по Пушкинской тропе на гору Железная. Мне лет сорок пять было, идем общаемся, сын бегает туда-сюда. Ну идем короче, а сзади нас догоняет семейная пара, мирно о чем-то щебеча между собой. Догнали и обходят. И так спокойно удаляются… Все бы ничего, но им лет по шестьдесят, если не больше. Я попробовал в их темпе, но задыхаться стал. Короче, поднялся я на гору, спустился, смял пачку и выкинул в мусорную урну. Вот уже 13 лет не курю. Стаж 27 лет.

Курение — это быстро развивающаяся зависимость, схожая по механизму с наркотической. Никотин воздействует на мозг, вызывая кратковременное улучшение настроения, за которым следует упадок сил и потребность в новой дозе. Со временем формируется толерантность, и прежние негативные реакции организма на табак ослабевают. Физическая зависимость сочетается с психологической: сигарета начинает ассоциироваться с отдыхом, решением задач, рутиной. Курение укрепляется поведенческими шаблонами: кофе, вождение, паузы на работе уже не мыслимы без сигареты.


Каждый, кто пытался избавиться от никотиновой зависимости, знает, как это тяжело. Ломка, раздражительность, навязчивые мысли. Даже при переходе на вейпы, иллюзия «меньшего вреда» быстро развеивается: химические коктейли из ароматических смесей также бьют по легким, сосудам и всему организму.

Хорошая новость в том, что вы не одни. В сообществе «Давай бросать» (ВКонтакте и мессенджере Telegram), который работает при поддержке нацпроекта «Продолжительная и активная жизнь» знают, каково бороться с триггерами, искать замену привычке и удерживать себя от срыва. Здесь делятся историями тех, кто смог, поддерживают тех, кто только начал, и помогают разобраться в главном: как пережить отказ без мучений.

Социальная реклама. АНО «Национальные приоритеты», ИНН: 9704007633

Показать полностью
Курение Борьба с курением Зависимость Telegram (ссылка) ВКонтакте (ссылка) Длиннопост
5
GoblinCave
GoblinCave
1 год назад

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера!⁠⁠

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Приветствую, человеки и прочие расы фентезийного болота. В первой статье мы познакомились с движком Godot, сделали простенькую карту и настроили управление персонажем.

Настало время сделать физику еще более беспощадной стервой, а так же оживить нашего персонажа при помощи анимации. А еще мы добавим любимое развлечение графа Дракулы - колья!

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Пока что у нас есть вот это нечто...

Наш подопечный уже научился ходить в разные стороны, а так же совершать прыжки. База для любого платформера - это гравитация, а потому нашего болванчика тянет вниз. Но есть проблема...

Этот гад способен менять свое направление прямо в воздухе и к примеру развернутся на пол пути к пропасти. В каких то платформерах это нормально и является частью игровой механики, но у нас игрок будет СТРАДАТЬ!

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

"Игрок может двигаться по оси X (влево-вправо) только находясь на земле"

Мы внесем правки в нашу функцию передвижения влево-вправо. На данный момент функция активируется если нажата одна из кнопок направления. Добавляем условие, что игрок может передвигаться в этих направлениях только находясь на земле.

func handle_acceleration (input_axis, delta):

if is_on_floor() and input_axis !=0 :

velocity.x = move_toward(velocity.x, SPEED * input_axis, ACCELERATION * delta)

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Теперь если игрок неверно рассчитал расстояние для прыжка - сменить направление полета в воздухе он уже не сможет...

Казалось бы, на этом можно закончить, но есть нюанс.

Игроку нужно сначала взять хотя бы минимальный разбег в нужную сторону, чтобы избежать прыжка на одном месте. Грубо говоря, он должен сперва нажать клавишу "ВПРАВО", а уже потом "ПРОБЕЛ" иначе не сработает. Это неудобно, особенно когда нам нужно запрыгнуть на выступ находясь у стены. Дело поправимое, залазим обратно в эту же функцию и дополняем ее.

func handle_acceleration (input_axis, delta):

if is_on_floor() and input_axis !=0 :

velocity.x = move_toward(velocity.x, SPEED * input_axis, ACCELERATION * delta)

elif not is_on_floor() and input_axis != 0 and velocity.x == 0:

velocity.x = move_toward(velocity.x, SPEED * input_axis, ACCELERATION * 10 * delta)

Понимаю, выглядит сложновато, потому переведу на человечий.

Передвижение влево-вправо доступно только при нахождении на земле. Если игрок нажал сначала "ПРОБЕЛ", то произойдет прыжок на месте. Сдвинуться по оси X (влево-вправо) он уже не сможет, так как находится не на земле.

Нам нужно определить, находится ли персонаж в состоянии прыжка - это not_is_on_floor()

Раз происходит прыжок на месте, то ось X остается неизменной - это velocity.x == 0

Наша попытка передвижения вызывается нажатием клавиши направления - это input_axis !=0

Если все три условия соблюдены, то мы позволяем совершить передвижение по оси X, однако произойдет оно только один раз и только в одном из выбранных направлений. Все потому, что в следующем кадре значение velocity.x уже не будет равно нулю и данное условие перестает работать. Чтобы этот одноразовый рывок имел смысл, нам нужно увеличить значение ACCELERATION. Можем сделать для этого отдельную переменную, но я обошелся простым умножением на 10.

Что мы получили по итогу?

Прыжок с места является коротким - этого хватит чтобы запрыгнуть на выступ или преодолеть небольшое препятствие. Однако наличие разбега способно увеличить расстояние прыжка. Но какой бы прыжок не выбрал игрок - изменить направление полета в воздухе он уже не сможет.

Для чего обычно вводят такую механику? Для повышения ценности действий игрока. Зная, что нельзя повернуть назад в полете игрок будет куда осторожнее вымерять расстояние для прыжка над опасностью. К слову об опасности...

Самое популярное препятствие в платформерах - это пики точеные!

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Рисуем пики 16 х 16 в любом удобном графическом редакторе...

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Путь: Рендеринг - Текстуры - Default Texture Filter;

Нарисовав препятствие - загружаем его в ресурсы проекта. Создаем новую сцену "Spikes" и добавляем дочерний узел "Sprite2D". Как подцеплять к нему текстуру мы проходили в первой статье - советую почитать если еще незнаком. Чтобы наша картинка не замылилась ввиду ее пиксельного стиля - поменяем текстурный фильтр на Nearest.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Узел "Area2D" и раздел "Collision"...

Area2D - куда тебя ведать?

Создаем еще одну сцену (не узел) и за ее основу берем "Area2D" (вот это уже узел). Данная штука нужна чтобы обнаруживать пересечения объектов. У многих объектов есть такой раздел как "Collision", а в нем слои и маски.

Для того, чтобы было проще понять - объясню на примере:

Слой - это область, где данный объект МОГУТ увидеть другие объекты и взаимодействовать с ним.

Маска - это область, где данный объект МОЖЕТ увидеть другие объекты и взаимодействовать с ними.

Например, мы поставим объект "StaticBody2D" из которого состоит наша карта на первый слой. "CharterBody2D" который является нашим игроком мы поместим на второй слой.

Если у "CharterBody2D" в разделе маска мы укажем второй слой вместо первого, на котором находится "StaticBody2D" - наш персонаж его просто не увидит. А это значит, что игрок просто провалится в пол.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Объект World находится на первом слое, объект Player на втором. Маска Player видит объекты лишь на втором слое.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Из-за этого зоны столкновения у объектов Player и World не взаимодействуют и мы проваливаемся вниз. 

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Если выставить у Player маску первого слоя - он начнет его видеть и взаимодействовать с ним. По этой причине мы вновь твердо стоим на поверхности.

Теперь, когда мы знаем для чего нужен данный узел - пора сделать точеные пики действительно опасными. Заходим в сцену и выбрав узел Area2D переименовываем в "HazardArea". В разделе "Collision" выставляем третий слой, а вот маску оставляем пустой. Наши пики никого не должны искать - они сами выступают объектом поиска.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Теперь переходим в сцену Spikes и нажимаем на кнопку добавления дочерней сцены. Она находится рядом с кнопкой добавления узла. Выбираем нашу сцену "HazardArea2D". Добавляем для "HazardArea2D" два дочерних узла "CollisionPolygon", определяя область столкновения.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Можно создать область для одной пики и просто скопировать ее...

Теперь мы переходим в сцену "Player" и создаем дочерний узел "Area2D", называем его "HazardDetecter". Уже к этой области привязываем дочерний"CollisionShape". В узле "HazardDetecter" выбираем раздел "Collision" и оставляем графу слоя пустой. Но в разделе маски и выбираем третий слой - именно в нем мы будем искать область опасности "HazardArea".

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост
Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Графа слоя - пустая, графа маски - выставлена на третий слой...

Осталось настроить сигналы... вы еще не знакомы с ними?

У многих узлов есть доступные сигналы и узел Area2D - не исключение. Посмотреть доступные сигналы можно в колонке справа, перейдя в раздел "Узел". Нас в первую очередь интересует сигнал "area_entered", что в переводе на человеческий означает "Обнаружена область".

В графе маска указан третий слой и именно на нем находится "HazardArea". Когда наш узел "HazardDetecter" обнаружит другой узел типа Area2D - сигнал сработает. Но что нам делать с полученным сигналом?

Сделаем простенькую систему смерти и возрождения!

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Свет, камера - мотор!

Для начала добавим камеру, которая будет следовать за нашим персонажем. В разделе "PositionSmoothing" выставим "Speed" на 5 пикселей в секунду. Эта небольшая задержка сделает движение камеры более плавным.

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

@onready var starting_position = global_position

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Теперь переходим в узел "HazardDetecter" к разделу сигналов и ищем "entered_area". Нажимаем правой кнопкой мыши, тыкаем присоединить и выбираем наш объект "Player".

Это создаст в скрипте новую функцию, под которой мы пишем всего одну строку.

global_position = starting_position

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Присоединение сигнала к узлу...

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

"Если будет обнаружена Area2D - позиция игрока вернется на стартовую"

Остается только расставить наши точеные пики по карте и мы можем смело отлетать на стартовую точку при столкновении с ними!

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Вот они слева направо - пик, кол, штык, клык и острие...

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Разбежавшись прыгну со скалы...

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Вот я был и вот я у респауна...

Остался чисто косметический момент, а именно - анимация персонажа. 2D сеты анимации вы можете легко откапать на просторах интернета, я же расскажу вам как их правильно настроить.

Заменяем узел спрайта на "AnimatedSprite2D" и в разделе "Sprite Frames" создаем новый. Перед вами откроется окно кадровой анимации, куда вы и будете загружать кадры.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост
Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Стой, прыгай и беги...

Создаем три анимации - "idle", "jump" и "run". Первые две состоят из одиночных спрайтов, так как это статичные позиции. А вот для бега я решил добавить три спрайта. В окошке с FPS мы устанавливаем частоту кадров при анимации, в нашем случае поставили 12.

Теперь переносим зажав ctrl узел "AnimatedSprite2D" в наш код в виде переменной и создаем функцию update_animation.

func update_animation (input_axis, delta):
if velocity.x == 0:
animated_sprite_2d.play("idle")
if input_axis !=0:
animated_sprite_2d.flip_h = (input_axis < 0)
animated_sprite_2d.play("run")
if not is_on_floor():
animated_sprite_2d.play("jump")

Снова переведу для вас на человечий язык:

Если мы стоим на месте - запустить анимацию стоячего положения;

Если нажата одна из кнопок движения, то мы проверяем направление. Если нажата кнопка "влево" - то зеркально разворачиваем объект анимации. Проигрываем анимацию бега.

Если мы не на земле - запускаем анимацию прыжка.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Добавьте готовую функцию в список под phisics_process

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Теперь наш персонаж действительно ожил...

Наконец-то мы получили подобие игры!

У нас есть анимированный персонаж подчиняющийся законам физики, карта по которой он передвигается и даже опасности, которые могут его убить и отправить на старт.

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

Продолжим доводить данный проект до ума в следующей статье! А пока что подписывайся на мой блог и оставь пару комментариев. Тебе не сложно - а мне поможет!

Показать полностью 24
[моё] Gamedev Разработка Инди игра Программирование Программист Инди Godot Godot Engine Разработчики Разработчики игр Indiedev Платформер Длиннопост
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии