День 58
Сегодня был по большей части день отдыха от учебы (но все так же день работы🥲 )
Посмотрел несколько небольших видео по разработке на ютубе, глянул как делать интересные партиклы (VFX / visual effects) с помощью текстур, как раз я хотел к выпавшим апельсинам добавить сияние, чтобы они не выглядели так "плоско" как сейчас
Т.к. показывать по разработке сегодня нечего - то прикреплю пару картинок с капибарой, которые я пытался сгенерить в ChatGPT 4o. Запрос был таков, чтобы сделать две капибары - одну милую, а другую страшную с светящимися глазами, оружиями и всем вот таким. Некоторые запросы были чтобы Dall-E сгенерил по одной капибаре на одной картинке, а некоторые - чтобы с одной части была милая капибара, а с другой страшная, ну и в разных стиля, где-то более реалистично, где-то более минималистично
#godot #разработка #ritkarampage
Сегодня был по большей части день отдыха от учебы (но все так же день работы
Посмотрел несколько небольших видео по разработке на ютубе, глянул как делать интересные партиклы (VFX / visual effects) с помощью текстур, как раз я хотел к выпавшим апельсинам добавить сияние, чтобы они не выглядели так "плоско" как сейчас
Т.к. показывать по разработке сегодня нечего - то прикреплю пару картинок с капибарой, которые я пытался сгенерить в ChatGPT 4o. Запрос был таков, чтобы сделать две капибары - одну милую, а другую страшную с светящимися глазами, оружиями и всем вот таким. Некоторые запросы были чтобы Dall-E сгенерил по одной капибаре на одной картинке, а некоторые - чтобы с одной части была милая капибара, а с другой страшная, ну и в разных стиля, где-то более реалистично, где-то более минималистично
#godot #разработка #ritkarampage
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Media is too big
VIEW IN TELEGRAM
День 59
Сегодня изучал как правильно делать компоненты Hitbox и Hurtbox и связывать всякие такие компоненты между собой. С каждым днем всё больше и больше у меня проявляется картина архитектуры и того, как можно реализовать ту или иную механику
Я конечно еще не супер эксперт в композиции, но в голове сейчас вырисовывается на будущее такое - например у нас есть компонент жизней, добавим компонент "статус менеджер" и "статус яд" соединим их вместе и "статус яд" будет вызывать
Также создал новый компонент для худа игры -
В курсе очень большой упор делается на осознание того, что не надо сразу полностью идеально доделывать одну вещь, сделал часть - проверил, подумал, сделал вторую часть - проверил, подумал что делать дальше и куда его тыкать. А то я раньше как брался за что-то, например за оружие - я сразу пытался все к нему приделать, и эффекты, и продвинутую логику, и туда и сюда, но это занимало много времени и в любом случае потом приходилось какую-то часть переписывать. Естественно это из-за недостатка опыта в основном, но ошибок легче избежать, когда разбиваешь задание на небольшие кусочки (я же так всегда и делаю в веб-разработке, сфигали я тут как ребёнок это делаю..🤔 )
Прикреплю небольшое видево про прогресс бар, а завтра, вероятно, будет что-то про улучшение худа и подготовку к системе улучшений, жду не дождусь уже следующего дня🕺
P.S. подлаги в игре из-за перегрева ноута (троттлит проц), не могу его отнести никак в ремонт, потому что это с 9 утра до 17 вечера придётся ждать, а это только в субботу так получится, когда не будет работы
#ritkarampage #godot #разработка
Сегодня изучал как правильно делать компоненты Hitbox и Hurtbox и связывать всякие такие компоненты между собой. С каждым днем всё больше и больше у меня проявляется картина архитектуры и того, как можно реализовать ту или иную механику
Я конечно еще не супер эксперт в композиции, но в голове сейчас вырисовывается на будущее такое - например у нас есть компонент жизней, добавим компонент "статус менеджер" и "статус яд" соединим их вместе и "статус яд" будет вызывать
HealthComponent.damage(...) каждую секунду, или же будет посылать какой-то сигнал. Получается "статус яд" отвечает за одно, а компонент жизней - только за менеджинг жизней, получение урона и посылание сигналов "урон получен" или же "смэрть", звучит супер офигенно и 💫переиспользуемо💫Также создал новый компонент для худа игры -
ExperienceBar, к нему мы подсоединяем ExperienceManager и начинаем слушать его новый сигнал "опыт изменён", и теперь каждый раз, когда текущий опыт и макс. опыт для нового уровня меняется - ExperienceManager посылает сигнал "опыт изменён" и прогрес бар меняет своё значение. С каждого "огрызка" апельсина все еще даётся 1 единица опыта, для перехода на новый уровень нужно 5 опыта, потом 10, потом 15 и т.д., пока что схема супер простая чисто для тестаВ курсе очень большой упор делается на осознание того, что не надо сразу полностью идеально доделывать одну вещь, сделал часть - проверил, подумал, сделал вторую часть - проверил, подумал что делать дальше и куда его тыкать. А то я раньше как брался за что-то, например за оружие - я сразу пытался все к нему приделать, и эффекты, и продвинутую логику, и туда и сюда, но это занимало много времени и в любом случае потом приходилось какую-то часть переписывать. Естественно это из-за недостатка опыта в основном, но ошибок легче избежать, когда разбиваешь задание на небольшие кусочки (я же так всегда и делаю в веб-разработке, сфигали я тут как ребёнок это делаю..
Прикреплю небольшое видево про прогресс бар, а завтра, вероятно, будет что-то про улучшение худа и подготовку к системе улучшений, жду не дождусь уже следующего дня
P.S. подлаги в игре из-за перегрева ноута (троттлит проц), не могу его отнести никак в ремонт, потому что это с 9 утра до 17 вечера придётся ждать, а это только в субботу так получится, когда не будет работы
#ritkarampage #godot #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
День 60
Вчерашние посты уже как родные
Будем считать каждый месяц за 30 дней, поэтому.. уже 2 месяца, как я занимаюсь разработкой игр. Я уженачал видеть сквозь стены и читать мысли людей, ой не туда, какая-то паста
2 месяца - еще ничем я не занимался так же дисциплинированно, как ведением канала и разработкой игр. За прошедший месяц мне ни разу не хотелось кинуть это дело, а наоборот, мне уже намного больше нравится этим всем заниматься, это приятное чувство, когда ты понимаешь, что уже реально в чем-то да разбираешься (я даже начал иногда отвечать на вопросы в чатике по разработке игр)
Нас уже 53 и я безумно рад этому, может быть кого-то мои посты подтолкнуть начать заниматься любимым делом, которое так долго откладывалось в дальний ящик, ведь каждый из вас без преувеличения помогает мне придерживаться дисциплины и, что более важно, вы помогли не бросить это дело в первые дни😏
Все любят числа, я тоже, поэтому небольшая статистика за прошедший месяц:
За этот месяц я занимался понемногу всем, но в основном изучал пиксель-арт и занимался разработкой игры R.I.T.K.A. Rampage. Немного времени ушло на придумывание идеи для этой и будущей игры и совсем немножко ушло на геймдизайн
На само "программирование"/разработку в этом месяце ушло 23 часа и 12 минут, на пиксель арт - 17 часов 15 минут, на брейншторминг - 5 часов 59 минут, на геймдизайн - 37 минут . Всего - 47 часов 5 минут, что аж на целую.. минуту больше чем за прошлый месяц (справедливости ради - за прошлые 31 дней, в этом месяце статистика за 29 дней)
Каждый день, за исключением 31 июля, 25 и 28 августа (учился ночью с 27 на 28 августа) я так или иначе занимался разработкой игр
Минимально уделенное время за день - 32 минуты 1 августа на пиксель-арт, максимальное - 3 часа 48 минут, это было воскресенье 25 августа, часть времени ушло на пиксель-арт, часть - на разработку
Продолжаю в том же духе, в следующие 30 дней попытаюсь уделить времени на геймдев хотя бы на пару часов больше, надо разгоняться😁
Вчерашние посты уже как родные
Будем считать каждый месяц за 30 дней, поэтому.. уже 2 месяца, как я занимаюсь разработкой игр. Я уже
2 месяца - еще ничем я не занимался так же дисциплинированно, как ведением канала и разработкой игр. За прошедший месяц мне ни разу не хотелось кинуть это дело, а наоборот, мне уже намного больше нравится этим всем заниматься, это приятное чувство, когда ты понимаешь, что уже реально в чем-то да разбираешься (я даже начал иногда отвечать на вопросы в чатике по разработке игр)
Нас уже 53 и я безумно рад этому, может быть кого-то мои посты подтолкнуть начать заниматься любимым делом, которое так долго откладывалось в дальний ящик, ведь каждый из вас без преувеличения помогает мне придерживаться дисциплины и, что более важно, вы помогли не бросить это дело в первые дни
Все любят числа, я тоже, поэтому небольшая статистика за прошедший месяц:
За этот месяц я занимался понемногу всем, но в основном изучал пиксель-арт и занимался разработкой игры R.I.T.K.A. Rampage. Немного времени ушло на придумывание идеи для этой и будущей игры и совсем немножко ушло на геймдизайн
На само "программирование"/разработку в этом месяце ушло 23 часа и 12 минут, на пиксель арт - 17 часов 15 минут, на брейншторминг - 5 часов 59 минут, на геймдизайн - 37 минут . Всего - 47 часов 5 минут, что аж на целую.. минуту больше чем за прошлый месяц (справедливости ради - за прошлые 31 дней, в этом месяце статистика за 29 дней)
Каждый день, за исключением 31 июля, 25 и 28 августа (учился ночью с 27 на 28 августа) я так или иначе занимался разработкой игр
Минимально уделенное время за день - 32 минуты 1 августа на пиксель-арт, максимальное - 3 часа 48 минут, это было воскресенье 25 августа, часть времени ушло на пиксель-арт, часть - на разработку
Продолжаю в том же духе, в следующие 30 дней попытаюсь уделить времени на геймдев хотя бы на пару часов больше, надо разгоняться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
День 61
Сегодня разбирался в том, как делать улучшения, как их правильно показывать и узнал пару вещей про работу с UI
Завтра думаю рабочие улучшения уже будут готовы и покажу демку, а также обновлю игру на itch.io, чтобы вы могли поклацать последнюю версию
Курс реально мощный, но всё равно нужно будет обдумать многие вещи самостоятельно и придумать как их правильно реализовать
Например делать не просто какие-то улучшения (мутации) на "стреляете на 10% быстрее" или же "двигаетесь на 20% быстрее" и т.п., нужно обязательно разбавить чем-то более-менее уникальным, потому что, как мне кажется, вот это все числодрочерство очень редко где бывает уместно, оно просто никак не меняет геймплей, ну вообще. А вот если будет условная мутация "апельсиновый рывок/перекат" - то это уже будет менять геймплей, можно будет уворачиваться от врагов, которые делают разгон и от них обычным передвижением тяжело будет увернуться, а в некоторых случаях и вовсе невозможно (но это нужно будет компенсировать чем-то, игра то честной должна оставаться всегда)
#godot #ritkarampage #разработка
Сегодня разбирался в том, как делать улучшения, как их правильно показывать и узнал пару вещей про работу с UI
Завтра думаю рабочие улучшения уже будут готовы и покажу демку, а также обновлю игру на itch.io, чтобы вы могли поклацать последнюю версию
Курс реально мощный, но всё равно нужно будет обдумать многие вещи самостоятельно и придумать как их правильно реализовать
Например делать не просто какие-то улучшения (мутации) на "стреляете на 10% быстрее" или же "двигаетесь на 20% быстрее" и т.п., нужно обязательно разбавить чем-то более-менее уникальным, потому что, как мне кажется, вот это все числодрочерство очень редко где бывает уместно, оно просто никак не меняет геймплей, ну вообще. А вот если будет условная мутация "апельсиновый рывок/перекат" - то это уже будет менять геймплей, можно будет уворачиваться от врагов, которые делают разгон и от них обычным передвижением тяжело будет увернуться, а в некоторых случаях и вовсе невозможно (но это нужно будет компенсировать чем-то, игра то честной должна оставаться всегда)
#godot #ritkarampage #разработка
❤2🔥1
Media is too big
VIEW IN TELEGRAM
День 62
Вчера плотненько занялся разработкой, много чего сделал интересного
Сначала сделал фундамент с логикой для повышения уровней - сделал UpgradeManager, который слушает новый сигнал "level_up" от ExperienceManager'а и потом создает UpgradeScreen, в который передаются возможные улучшения на данный момент (пока что все улучшения, а их аж.. одно) и уже отрисовываются нужные карточки
Пока что я не заморичиваюсь сильно над визуалом, самое главное щас сделать полностью функциональную игру, в которую можно сыграть от начала и до конца, а потом уже добавлять всякие эффекты, больше анимаций и т.д.
Кстати в прошлом посте писал что постараюсь не делать улучшений типа "на 10% быстрее стрельба" и все такое, так что я слово дал я слово забрал - улучшение на 10% скорости стрельбы уже присутствует👀
Конечно я потом это все переделаю, добавлю нормальные улучшения, которые влияют на геймплей, но, вероятно, обычных "числовых" тоже не избежать, надо будет постараться как-то это обыграть хотя бы визуально. Например если выбрать улучшение "быстрое передвижение" - то у персонажа ноги преображаются, а не только какие-то скрытые проценты, с оружием так же само
Вообще, я планирую сделать два типа улучшений, как и говорил ранее
1 - мутации для персонажа, в основном это будет что-то простое числовое, но пару навыков я тоже туда закину, например тот же самый уворот-кувырок или же стрельба во время бега (а не только во время ходьбы)
2 - улучшения для оружия текущего. Если брать пистолет, то очевидно чего ему не хватает - пуля одна, урона средне, поражает только одного врага (или нескольких, если прям в них влететь, но это не считается 👀), не проходит насквозь. Так что улучшения, вероятно, будут похожи на:
- Двойной ствол - дополнительная пуля, но какой ценой? | Вторая пуля, но медленнее движение во время стрельбы и сама стрельба немного медленнее
- Разрывные пули - взрывы! не поранься | При попадании во врага пуля будет взрываться, нанося урон в небольшом радиусе. Взрыв наносит урон игроку тоже
И все в таком духе, обязательно планирую менять то, как оружие выглядит, когда улучшение выбрано
Я залил актуальную версию игры на itch.io, поклацать можно тут - https://sundwell.itch.io/ritka-rampage
Краткое видео-превью тоже прикрепляю, как всегда
#godot #ritkarampage #разработка
Вчера плотненько занялся разработкой, много чего сделал интересного
Сначала сделал фундамент с логикой для повышения уровней - сделал UpgradeManager, который слушает новый сигнал "level_up" от ExperienceManager'а и потом создает UpgradeScreen, в который передаются возможные улучшения на данный момент (пока что все улучшения, а их аж.. одно) и уже отрисовываются нужные карточки
Пока что я не заморичиваюсь сильно над визуалом, самое главное щас сделать полностью функциональную игру, в которую можно сыграть от начала и до конца, а потом уже добавлять всякие эффекты, больше анимаций и т.д.
Кстати в прошлом посте писал что постараюсь не делать улучшений типа "на 10% быстрее стрельба" и все такое, так что я слово дал я слово забрал - улучшение на 10% скорости стрельбы уже присутствует
Конечно я потом это все переделаю, добавлю нормальные улучшения, которые влияют на геймплей, но, вероятно, обычных "числовых" тоже не избежать, надо будет постараться как-то это обыграть хотя бы визуально. Например если выбрать улучшение "быстрое передвижение" - то у персонажа ноги преображаются, а не только какие-то скрытые проценты, с оружием так же само
Вообще, я планирую сделать два типа улучшений, как и говорил ранее
1 - мутации для персонажа, в основном это будет что-то простое числовое, но пару навыков я тоже туда закину, например тот же самый уворот-кувырок или же стрельба во время бега (а не только во время ходьбы)
2 - улучшения для оружия текущего. Если брать пистолет, то очевидно чего ему не хватает - пуля одна, урона средне, поражает только одного врага (или нескольких, если прям в них влететь, но это не считается 👀), не проходит насквозь. Так что улучшения, вероятно, будут похожи на:
- Двойной ствол - дополнительная пуля, но какой ценой? | Вторая пуля, но медленнее движение во время стрельбы и сама стрельба немного медленнее
- Разрывные пули - взрывы! не поранься | При попадании во врага пуля будет взрываться, нанося урон в небольшом радиусе. Взрыв наносит урон игроку тоже
И все в таком духе, обязательно планирую менять то, как оружие выглядит, когда улучшение выбрано
Я залил актуальную версию игры на itch.io, поклацать можно тут - https://sundwell.itch.io/ritka-rampage
Краткое видео-превью тоже прикрепляю, как всегда
#godot #ritkarampage #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
День 63
Вчера переделал систему нанесения урона персонажу, урон будет наносится не каждую секунду в зависимости от кол-ва врагов рядом с персонажем, а как обычно - от касания
Решение я принял это потому, что будут враги, которые будут делать разгон (например корова/бык) или тот же самый дикобраз, который будет стрелять в Ритку, в принципе почти во всех случаях нужен моментальный урон, а не урон в секунду
Но пока что есть небольшой баг - если враг постоянно касается персонажа, то урон не наносится все время или интервалами, т.к. на данный момент я отслеживаю только когда кто-то зашёл в зону коллизии игрока и тогда наносится урон, а чтобы нанести урон ещё раз - нужно чтобы враг вышел из зоны коллизии персонажа и зашёл обратно
В общем похожая проблема уже была в прошлой игре про рыцаря, так что я знаю как это фиксить. Решу это немного иначе, чем было в игре про рыцаря - я добавлю в HitboxComponent "перезарядку", то есть когда тот же кролик будет наносить урон, то будет запускаться таймер на условных пол секунды во время которой будет отключаться слой соприкосновения с персонажем и спустя эти пол секунды этот слой будет снова включаться и коллизия Ритки снова обнаружит этот хитбокс будто бы он только что зашёл в его зону
Сложно какие-то технические вещи нормально объяснять, особенно когда сам ещё далеко не эксперт 😅
#ritkarampage #разработка #godot
Вчера переделал систему нанесения урона персонажу, урон будет наносится не каждую секунду в зависимости от кол-ва врагов рядом с персонажем, а как обычно - от касания
Решение я принял это потому, что будут враги, которые будут делать разгон (например корова/бык) или тот же самый дикобраз, который будет стрелять в Ритку, в принципе почти во всех случаях нужен моментальный урон, а не урон в секунду
Но пока что есть небольшой баг - если враг постоянно касается персонажа, то урон не наносится все время или интервалами, т.к. на данный момент я отслеживаю только когда кто-то зашёл в зону коллизии игрока и тогда наносится урон, а чтобы нанести урон ещё раз - нужно чтобы враг вышел из зоны коллизии персонажа и зашёл обратно
В общем похожая проблема уже была в прошлой игре про рыцаря, так что я знаю как это фиксить. Решу это немного иначе, чем было в игре про рыцаря - я добавлю в HitboxComponent "перезарядку", то есть когда тот же кролик будет наносить урон, то будет запускаться таймер на условных пол секунды во время которой будет отключаться слой соприкосновения с персонажем и спустя эти пол секунды этот слой будет снова включаться и коллизия Ритки снова обнаружит этот хитбокс будто бы он только что зашёл в его зону
Сложно какие-то технические вещи нормально объяснять, особенно когда сам ещё далеко не эксперт 😅
#ritkarampage #разработка #godot
🔥1
Media is too big
VIEW IN TELEGRAM
День 64
Сегодня переделал логику экрана "смэрти" и добавил экран "победы" (больше на заглушку пока что похоже), который появляется, когда время на арене подходит к концу, на данный момент это ровно 1 минута. То есть минута прошла и если выжил - то выиграл, но я это поменяю в будущем, потому что в R.I.T.K.A. Rampage победой будет считаться убийство всех боссов. А так как последний босс будет появляться как раз в конце таймера для арены - то конец таймера будет запускать проверку потипу "а боссы еще остались? Нет? Тогда победа"
Еще, что более важно, я пофиксил баг о котором говорил в прошлом посте, где если враг не выходит из игрока, то игрок не получает постоянно урон. Я бы даже сказал что я не пофиксил, а прям улучшил логику HitboxComponent и HurtboxComponent и прям горжусь этим 🥲
Как было раньше - враг подошел к персонажу - персонаж получил урон один раз, теперь, пока враг не выйдет из зоны коллизии персонажа то урон не будет наноситься
Как стало - враг подошел к персонажу и вот что происходит:
1. HitboxComponent запушился в массив
2. В HurtboxComponent каждый кадр циклом бежим по вышеназванному массиву и, если Hitbox не на "перезарядке" (это новое), то наносим урон и ставим на перезарядку хитбокс, иначе - ничего не делаем
Вот кусок кода из HurtboxComponent
Я прям реально доволен этим решением
Завтра я планирую немного заняться пиксель-артом именно для игры (надо разнообразие вводить, а то разработка и разработка одна последнее время) и еще хочу попытаться нарисовать свой логотип вручную, а то лого, которое сейчас - это тот же чатГПТ сгенерил, пора бы уже и лого лично сделать. Как-то в будущем расскажу историю вообще своего никнейма, он у меня 💫сос мыслом💫, пришел к нему спустя много лет и мне супер нравится
К слову про игру - там в курсе уже скоро будут добавлять нового врага и логику спавна врагов (кто-то чаще, кто-то реже), так что мне тоже уже пора работать над новым врагом, у меня есть пару вариантов уже, а решение кого первым добавлять я доверю вам с помощью голосовалки ниже😏
#godot #ritkarampage #разработка
Сегодня переделал логику экрана "смэрти" и добавил экран "победы" (больше на заглушку пока что похоже), который появляется, когда время на арене подходит к концу, на данный момент это ровно 1 минута. То есть минута прошла и если выжил - то выиграл, но я это поменяю в будущем, потому что в R.I.T.K.A. Rampage победой будет считаться убийство всех боссов. А так как последний босс будет появляться как раз в конце таймера для арены - то конец таймера будет запускать проверку потипу "а боссы еще остались? Нет? Тогда победа"
Еще, что более важно, я пофиксил баг о котором говорил в прошлом посте, где если враг не выходит из игрока, то игрок не получает постоянно урон. Я бы даже сказал что я не пофиксил, а прям улучшил логику HitboxComponent и HurtboxComponent и прям горжусь этим 🥲
Как было раньше - враг подошел к персонажу - персонаж получил урон один раз, теперь, пока враг не выйдет из зоны коллизии персонажа то урон не будет наноситься
Как стало - враг подошел к персонажу и вот что происходит:
1. HitboxComponent запушился в массив
surrounding_hitboxes внутри HurtboxComponent2. В HurtboxComponent каждый кадр циклом бежим по вышеназванному массиву и, если Hitbox не на "перезарядке" (это новое), то наносим урон и ставим на перезарядку хитбокс, иначе - ничего не делаем
Вот кусок кода из HurtboxComponent
func _process(delta):
apply_damage()
func apply_damage():
for hitbox_component in surrounding_hitboxes:
if hitbox_component.is_reloaded():
health_component.damage(hitbox_component.damage)
damaged.emit(hitbox_component.damage)
hitbox_component.start_reloading()
Я прям реально доволен этим решением
Завтра я планирую немного заняться пиксель-артом именно для игры (надо разнообразие вводить, а то разработка и разработка одна последнее время) и еще хочу попытаться нарисовать свой логотип вручную, а то лого, которое сейчас - это тот же чатГПТ сгенерил, пора бы уже и лого лично сделать. Как-то в будущем расскажу историю вообще своего никнейма, он у меня 💫сос мыслом💫, пришел к нему спустя много лет и мне супер нравится
К слову про игру - там в курсе уже скоро будут добавлять нового врага и логику спавна врагов (кто-то чаще, кто-то реже), так что мне тоже уже пора работать над новым врагом, у меня есть пару вариантов уже, а решение кого первым добавлять я доверю вам с помощью голосовалки ниже
#godot #ritkarampage #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Немного инфы про врагов из голосовалки, чтобы понимать что к чему +-
Имена врагов, вероятно, еще будут изменяться
1. Explosive Bunny (Кролик-Камикадзе, Взрывокролик.. Взрывайка?)
ХП - 💔
Урон - 💥💥💥
Скорость - ⚡️⚡️
Описание - имеет жизней меньше, чем обычный кролик, но при смерти или соприкосновении с Риткой взрывается и наносит приличный урон по области
2. Stubborn Cow (Упертая корова)
ХП - ❤️❤️
Урон - 💥💥
Скорость - ⚡️
Описание - имеет приличное кол-во здоровья, двигается медленно, но имеет способность "Bull Rush", корова топчется на месте, берёт разгон и очень быстро бежит по прямой с увеличенным уроном. Урон при касании - слабый, при касании в разгоне - средне-сильный
3. Quill-Shot Porcupine (Дикобраз-иглострел)
ХП - ❤️💔
Урон - 💥
Скорость - ⚡️⚡️
Описание - имеет средне кол-во здоровья, постоянно двигается в сторону персонажа и держит дистанцию, не пытается соприкоснуться с Риткой. Имеет способность "Quill Shot" - периодически стреляет иглами в сторону персонажа на средней дистанции, которые наносят небольшой урон. При касании наносит минимальный урон
У меня есть еще идеи, но вот эти трое привнесут наибольшее разнообразие при внедрении
Если у кого есть идеи для врагов, способностей, улучшений или вообще чего-угодно - буду рад внедрить это в игру
#ritkarampage
Имена врагов, вероятно, еще будут изменяться
1. Explosive Bunny (Кролик-Камикадзе, Взрывокролик.. Взрывайка?)
ХП - 💔
Урон - 💥💥💥
Скорость - ⚡️⚡️
Описание - имеет жизней меньше, чем обычный кролик, но при смерти или соприкосновении с Риткой взрывается и наносит приличный урон по области
2. Stubborn Cow (Упертая корова)
ХП - ❤️❤️
Урон - 💥💥
Скорость - ⚡️
Описание - имеет приличное кол-во здоровья, двигается медленно, но имеет способность "Bull Rush", корова топчется на месте, берёт разгон и очень быстро бежит по прямой с увеличенным уроном. Урон при касании - слабый, при касании в разгоне - средне-сильный
3. Quill-Shot Porcupine (Дикобраз-иглострел)
ХП - ❤️💔
Урон - 💥
Скорость - ⚡️⚡️
Описание - имеет средне кол-во здоровья, постоянно двигается в сторону персонажа и держит дистанцию, не пытается соприкоснуться с Риткой. Имеет способность "Quill Shot" - периодически стреляет иглами в сторону персонажа на средней дистанции, которые наносят небольшой урон. При касании наносит минимальный урон
У меня есть еще идеи, но вот эти трое привнесут наибольшее разнообразие при внедрении
Если у кого есть идеи для врагов, способностей, улучшений или вообще чего-угодно - буду рад внедрить это в игру
#ritkarampage
🔥1
Какого врага добавляем?
Anonymous Poll
27%
Explosive Bunny (Кролик-Камикадзе, Взрывокролик.. Взрывайка?)
35%
Stubborn Cow (Упертая корова)
38%
Quill-Shot Porcupine (Дикобраз-Иглострел)
😁1
День 65
Сегодня занимался пиксель-артом, как и хотел. Думал взять размер 128х128 для логотипа - но я тупо потерялся в этом кол-ве пикселей, взял 64х64 и все равно было очень сложно, но я.. не смог. Ну да, вообще не получилось даже колодец сделать. Работать с артом более 32х32 размером уже гипер сложно, так что не буду пока что прям упарываться в ту идею, что сейчас есть (колодец с солнцем и ник под ним), а, вероятно, сделаю лого размером 32х32 или же вообще пока что забью на это и буду продолжать делать игру. Но тот огрызок-недоделок колодца прикреплю к посту, что уж тут
Я вот часто в конце дня думаю: "На что я вообще потратил время? Я же только час учился", так вот - на создание контента, ведение тг канала, монтаж видео и продумывание разных идей иногда уходит неимоверное кол-во времени, прикреплю скриншот с сегодняшней статой. Я ведь начал трекать время не только за разработкой, а и за тем, сколько я трачу времени на создание контента, я ведь хочу быть популярным🥳
Так вот - больше четырех часов ушло на все про все сегодня, теперь меня не мучает совесть вечером что я просто потерял день. Треканье лично для себя очень помогает отслеживать свое КПД, а вот на работе тайм-трекеры это зло без исключений, это так, просто к слову
Завтра (сегодня) начну работу над новым врагом и продолжу смотреть курс - на повестке дня увеличение сложности с течением времени и всякие микро улучшения
#pixelart #godot #ritkarampage #разработка
Сегодня занимался пиксель-артом, как и хотел. Думал взять размер 128х128 для логотипа - но я тупо потерялся в этом кол-ве пикселей, взял 64х64 и все равно было очень сложно, но я.. не смог. Ну да, вообще не получилось даже колодец сделать. Работать с артом более 32х32 размером уже гипер сложно, так что не буду пока что прям упарываться в ту идею, что сейчас есть (колодец с солнцем и ник под ним), а, вероятно, сделаю лого размером 32х32 или же вообще пока что забью на это и буду продолжать делать игру. Но тот огрызок-недоделок колодца прикреплю к посту, что уж тут
Я вот часто в конце дня думаю: "На что я вообще потратил время? Я же только час учился", так вот - на создание контента, ведение тг канала, монтаж видео и продумывание разных идей иногда уходит неимоверное кол-во времени, прикреплю скриншот с сегодняшней статой. Я ведь начал трекать время не только за разработкой, а и за тем, сколько я трачу времени на создание контента, я ведь хочу быть популярным
Так вот - больше четырех часов ушло на все про все сегодня, теперь меня не мучает совесть вечером что я просто потерял день. Треканье лично для себя очень помогает отслеживать свое КПД, а вот на работе тайм-трекеры это зло без исключений, это так, просто к слову
Завтра (сегодня) начну работу над новым врагом и продолжу смотреть курс - на повестке дня увеличение сложности с течением времени и всякие микро улучшения
#pixelart #godot #ritkarampage #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
День 66
Вчера маловато времени вышло позаниматься разработкой, решал всякие важные и не очень дела
Глянул видео про увеличение сложности в течении времени - сделано прикольно, прям вот то, что нужно для такой игры
Есть ArenaTimeManager, в котором стоит тот таймер до конца игры (на данный момент 60 секунд), и мы туда добавляем данные про сложность и про то, как быстро сложность должна увеличиваться. На данный момент это каждые 5 секунд сложность увеличивается на 1. Эти единицы сложности это прям такие очень абстрактные единицы, т.е. будет не "easy", "medium", "hard", а просто число текущей сложности. Если локация будет длиться 10 минут, то максимальная сложность будет 120 (600 / 5)
Использовать это в принципе довольно легко, в курсе пока что показано только как увеличить скорость спавна врагов, но очевидно, что с течением сложности будут появляться новые враги, иногда прям слабые враги будут полностью исчезать (кролики например) и так далее. Я вот подглянул одним глазком что там дальше по курсу - и там есть видео "Using a Weighted Table for Enemy Spawning", то есть у каждого врага будет свой "вес" (без закладок). Тут все аналогично как и с тем умным построением тайлмапа - чем больше вес, тем больше шанс появления врага. На данный момент я это вижу как ренжи сложности и в зависимости от текущей сложности сетать веса всем врагам
Если сложность от 0 до 30 - то у всех врагов вес 0, а у Кролика - 1, т.е. 100% шанс на появление кролика. Если сложность от 31 до 60 - у Кролика вес 9, у Дикобраза - 1, а у всех остальных - 0. Значит шанс появления Кролика 9/10 = 90%, у Дикобраза 1/10 = 10%, ну и все в таком духе
Ну и таким же образом будет повышаться сложность самих врагов, если сложность от 0 до 30 - спавним Кроликов с "уровнем 1", от 31 до 60 - Кролики уже с "уровнем 2". С повышением уровня врагов будет повышаться только кол-во жизней и выпадаемого опыта. Мне кажется это в принципе все, что нужно, т.к. урон повышать будет не совсем логично, потому что у персонажа больше жизней не становится (ну возможно чуточку) и брони тоже (такой механики пока что в игре нет вообще). Может я это и пересмотрю, но пока что так
К слову - мне показалось странным, что препод запихнул "сложность" в ArenaTimeManager, т.к. это не совсем Single Responsibility, пошел в комменты читать - и там один чел уже спросил что-то типа: "А почему сложность в ArenaTimeManager? Может лучше будет сделать DifficultyManager?". Препод ответил что да, ты реально прав, так будет намного лучше и правильнее. В общем я доволен собой, уже начинаю "чувствовать" архитектуру🕺
#godot #разработка #ritkarampage
Вчера маловато времени вышло позаниматься разработкой, решал всякие важные и не очень дела
Глянул видео про увеличение сложности в течении времени - сделано прикольно, прям вот то, что нужно для такой игры
Есть ArenaTimeManager, в котором стоит тот таймер до конца игры (на данный момент 60 секунд), и мы туда добавляем данные про сложность и про то, как быстро сложность должна увеличиваться. На данный момент это каждые 5 секунд сложность увеличивается на 1. Эти единицы сложности это прям такие очень абстрактные единицы, т.е. будет не "easy", "medium", "hard", а просто число текущей сложности. Если локация будет длиться 10 минут, то максимальная сложность будет 120 (600 / 5)
Использовать это в принципе довольно легко, в курсе пока что показано только как увеличить скорость спавна врагов, но очевидно, что с течением сложности будут появляться новые враги, иногда прям слабые враги будут полностью исчезать (кролики например) и так далее. Я вот подглянул одним глазком что там дальше по курсу - и там есть видео "Using a Weighted Table for Enemy Spawning", то есть у каждого врага будет свой "вес" (без закладок). Тут все аналогично как и с тем умным построением тайлмапа - чем больше вес, тем больше шанс появления врага. На данный момент я это вижу как ренжи сложности и в зависимости от текущей сложности сетать веса всем врагам
Если сложность от 0 до 30 - то у всех врагов вес 0, а у Кролика - 1, т.е. 100% шанс на появление кролика. Если сложность от 31 до 60 - у Кролика вес 9, у Дикобраза - 1, а у всех остальных - 0. Значит шанс появления Кролика 9/10 = 90%, у Дикобраза 1/10 = 10%, ну и все в таком духе
Ну и таким же образом будет повышаться сложность самих врагов, если сложность от 0 до 30 - спавним Кроликов с "уровнем 1", от 31 до 60 - Кролики уже с "уровнем 2". С повышением уровня врагов будет повышаться только кол-во жизней и выпадаемого опыта. Мне кажется это в принципе все, что нужно, т.к. урон повышать будет не совсем логично, потому что у персонажа больше жизней не становится (ну возможно чуточку) и брони тоже (такой механики пока что в игре нет вообще). Может я это и пересмотрю, но пока что так
К слову - мне показалось странным, что препод запихнул "сложность" в ArenaTimeManager, т.к. это не совсем Single Responsibility, пошел в комменты читать - и там один чел уже спросил что-то типа: "А почему сложность в ArenaTimeManager? Может лучше будет сделать DifficultyManager?". Препод ответил что да, ты реально прав, так будет намного лучше и правильнее. В общем я доволен собой, уже начинаю "чувствовать" архитектуру
#godot #разработка #ritkarampage
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
День 67
Вчера (ну а когда-же) занимался пиксель-артом и обдумал еще раз врагов, какие у них способности будут, как будет выглядеть анимация и т.д.
Следил за тем опросником про следующего врага и в основном всегда побеждал дикобраз, но иногда счет с коровой был одинаковый, так что я сделал спрайты сразу для двух - и для коровы и для дикобраза (дикобразу сделал 2 почти одинаковые вариации, может буду использовать обе)
Про корову все так и осталось - будет медленно идти к персонажу, а раз в условных 5-10 секунд будет злобно топтаться на месте ибежать за пивом брать разгон в сторону персонажа. Во время рывка скорость будет быстрой, чтобы нельзя было просто в противоположную сторону отойти, а надо будет в стороны идти, ну и урона значительно больше будет наносить
Про дикобраза я пока что еще не решил как он будет именно стрелять - по одной игле или же (что более логично) сразу несколькими, но с разбросом. Второй вариант мне как-то больше нравится, обязательно попробую внедрить именно его. Иглы будут разной длины и будут лететь с разной изначальной скоростью и будут замедляться со временем
Изначально думал переиспользовать пулю (сделать общий компонент - ProjectileComponent) и уже от этого отталкиваться, но пока что не уверен. Возможно тут и не надо переиспользовать, а просто написать пару лишних строк похожих
Еще я думал выделять на игры по 30 дней, но 30й день уже через несколько дней, а игра еще супер недоделана, я не взял в учет то, что я вообще-то еще работаю и люблю поспать и заниматься ничегонеделаньем, так что реальное время чтобы полностью закончить текущую игру и чтобы это было не сыро - 50 дней
#pixelart #ritkarampage
Вчера (ну а когда-же) занимался пиксель-артом и обдумал еще раз врагов, какие у них способности будут, как будет выглядеть анимация и т.д.
Следил за тем опросником про следующего врага и в основном всегда побеждал дикобраз, но иногда счет с коровой был одинаковый, так что я сделал спрайты сразу для двух - и для коровы и для дикобраза (дикобразу сделал 2 почти одинаковые вариации, может буду использовать обе)
Про корову все так и осталось - будет медленно идти к персонажу, а раз в условных 5-10 секунд будет злобно топтаться на месте и
Про дикобраза я пока что еще не решил как он будет именно стрелять - по одной игле или же (что более логично) сразу несколькими, но с разбросом. Второй вариант мне как-то больше нравится, обязательно попробую внедрить именно его. Иглы будут разной длины и будут лететь с разной изначальной скоростью и будут замедляться со временем
Изначально думал переиспользовать пулю (сделать общий компонент - ProjectileComponent) и уже от этого отталкиваться, но пока что не уверен. Возможно тут и не надо переиспользовать, а просто написать пару лишних строк похожих
Еще я думал выделять на игры по 30 дней, но 30й день уже через несколько дней, а игра еще супер недоделана, я не взял в учет то, что я вообще-то еще работаю и люблю поспать и заниматься ничегонеделаньем, так что реальное время чтобы полностью закончить текущую игру и чтобы это было не сыро - 50 дней
#pixelart #ritkarampage
🔥2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
День 68
Вчера обдумывал (жесть, уже позавчера) как именно этот дикобраз будет себя вести и, в принципе, все обдумал
Дикобраз будет подходить к персонажу на определённую дистанцию и будет раз в 2+- секунды стрелять иглами, во время "перезарядки" он будет бродить вокруг персонажа, типа уворачиваясь. Сказать просто - реализовать думаю будет слегка сложнее
Самое главное что я сделал за 68 день это анимации для дикобраза - движение, атака (вообще бомба получилась) и кадр смерти, прикреплю видео к посту, а гифки закину в комменты
Сейчас занимаюсь анимациями для Упертой Коровы, а завтра (то есть 7 сентября, новый день же начинается когда просыпаешься, ну да) уже буду внедрять врагов и их логику, начну с дикобраза, т.к. он выиграл в голосовалке с небольшим отрывом
#pixelart #ritkarampage
Вчера обдумывал (жесть, уже позавчера) как именно этот дикобраз будет себя вести и, в принципе, все обдумал
Дикобраз будет подходить к персонажу на определённую дистанцию и будет раз в 2+- секунды стрелять иглами, во время "перезарядки" он будет бродить вокруг персонажа, типа уворачиваясь. Сказать просто - реализовать думаю будет слегка сложнее
Самое главное что я сделал за 68 день это анимации для дикобраза - движение, атака (вообще бомба получилась) и кадр смерти, прикреплю видео к посту, а гифки закину в комменты
Сейчас занимаюсь анимациями для Упертой Коровы, а завтра (то есть 7 сентября, новый день же начинается когда просыпаешься, ну да) уже буду внедрять врагов и их логику, начну с дикобраза, т.к. он выиграл в голосовалке с небольшим отрывом
#pixelart #ritkarampage
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
День 69
Сегодня сделал анимации для Упёртой Коровы, новостей не особо много 👀
Тут анимаций побольше - ходьба, "разгон на месте", сам бег и один кадр смэрти. Но пришлось немного попотеть, хотя я сначала думал будет проще чем дикобраз
Результатом в общем-то доволен, не идеально - но это и не цель. Друг сказал мне классную фразу: "Progress over perfection", что значит "важнее делать шаги вперёд и развиваться, даже если результат пока не идеален. Лучше продолжать учиться и развиваться, чем тратить слишком много времени на стремление к идеальному результату"
А, ну если что я не полностью из головы беру эти спрайты - это ну просто нереально нарисовать что-то с нуля, надо смотреть похожие спрайты, похожие анимации, срисовывать-списывать это все, а потом со временем уже что-то в голове да свое и появится. А пока что тихо срисовал и ушел называется нашел👀
Как обычно прикрепляю видео с результатом, а гифки закину в комменты
#pixelart #ritkarampage
Сегодня сделал анимации для Упёртой Коровы, новостей не особо много 👀
Тут анимаций побольше - ходьба, "разгон на месте", сам бег и один кадр смэрти. Но пришлось немного попотеть, хотя я сначала думал будет проще чем дикобраз
Результатом в общем-то доволен, не идеально - но это и не цель. Друг сказал мне классную фразу: "Progress over perfection", что значит "важнее делать шаги вперёд и развиваться, даже если результат пока не идеален. Лучше продолжать учиться и развиваться, чем тратить слишком много времени на стремление к идеальному результату"
А, ну если что я не полностью из головы беру эти спрайты - это ну просто нереально нарисовать что-то с нуля, надо смотреть похожие спрайты, похожие анимации, срисовывать-списывать это все, а потом со временем уже что-то в голове да свое и появится. А пока что тихо срисовал и ушел называется нашел
Как обычно прикрепляю видео с результатом, а гифки закину в комменты
#pixelart #ritkarampage
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
День 70
Сегодня разработка пошла прям очень хорошо, добавил в игру дикобраза, сделал ему логику атаки и передвижения, но перед этим доделав его страничку у себя в "дизайн-документе" (скрин прикреплю кстати)
Сейчас дикобраз двигается следующим образом - он преследует персонажа, пока не будет рядом с ним, после этого начинается чередование атака — блуждание. Каждые 2 секунды дикобраз атакует, если персонаж в зоне досягаемости, а в перерывах между атакой он блуждает туда-сюда (очень классно получилось, мне прям нравится) и каждые 0.6 секунд меняет своё направление. Иногда даже кажется, что дикобраз убегает от персонажа 😅
Кстати я сейчас подумал над этим - может реально сделать чтобы дикобраз убегал от персонажа, когда Ритка слишком близко приближается к нему🤔
Завтра потестирую этот вариант, возможно будет даже прикольнее чем сейчас. Будет это работать следующим образом - если дикобраз находится на расстоянии 150 условных единиц (у.е.) и меньше к персонажу - то чередует атаку и брождение туда-сюда, а если дистанция становится менее 50 у.е. - то дикобраз начинает двигаться в противоположную сторону от Ритки с увеличенной скоростью (типа убегает). А чтобы избежать дёрганий в движении когда будет 49-51 расстояние я добавлю задержку перед изменением направления и будет четко вообще
И к мысли про убегающего дикобраза - может ему имя поменять? Например на "Пугливый Дикобраз" / "Timid Porcupine". А то сейчас его имя какое-то слишком обычное что-ли ("Дикобраз Иглострел" / "Quill-Shot Porcupine")
С именами врагов я что-то придумаю точно, как минимум добавлю что-то типа бестиария, в котором будет показано сколько было убито тех или иных врагов, немного описания про врага и все такое, уверен будет полезно такое внедрить
Мне прям понравилось разрабатывать сейчас это все, так что завтра (сегодня, в воскресенье) я доделаю полностью дикобраза и приступлю к Упрямой Корове
#ritkarampage #godot #разработка
Сегодня разработка пошла прям очень хорошо, добавил в игру дикобраза, сделал ему логику атаки и передвижения, но перед этим доделав его страничку у себя в "дизайн-документе" (скрин прикреплю кстати)
Сейчас дикобраз двигается следующим образом - он преследует персонажа, пока не будет рядом с ним, после этого начинается чередование атака — блуждание. Каждые 2 секунды дикобраз атакует, если персонаж в зоне досягаемости, а в перерывах между атакой он блуждает туда-сюда (очень классно получилось, мне прям нравится) и каждые 0.6 секунд меняет своё направление. Иногда даже кажется, что дикобраз убегает от персонажа 😅
Кстати я сейчас подумал над этим - может реально сделать чтобы дикобраз убегал от персонажа, когда Ритка слишком близко приближается к нему
Завтра потестирую этот вариант, возможно будет даже прикольнее чем сейчас. Будет это работать следующим образом - если дикобраз находится на расстоянии 150 условных единиц (у.е.) и меньше к персонажу - то чередует атаку и брождение туда-сюда, а если дистанция становится менее 50 у.е. - то дикобраз начинает двигаться в противоположную сторону от Ритки с увеличенной скоростью (типа убегает). А чтобы избежать дёрганий в движении когда будет 49-51 расстояние я добавлю задержку перед изменением направления и будет четко вообще
И к мысли про убегающего дикобраза - может ему имя поменять? Например на "Пугливый Дикобраз" / "Timid Porcupine". А то сейчас его имя какое-то слишком обычное что-ли ("Дикобраз Иглострел" / "Quill-Shot Porcupine")
С именами врагов я что-то придумаю точно, как минимум добавлю что-то типа бестиария, в котором будет показано сколько было убито тех или иных врагов, немного описания про врага и все такое, уверен будет полезно такое внедрить
Мне прям понравилось разрабатывать сейчас это все, так что завтра (сегодня, в воскресенье) я доделаю полностью дикобраза и приступлю к Упрямой Корове
#ritkarampage #godot #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
День 71
Сегодня полностью доделал врага-дикобраза, теперь он стреляет от 1 до 3 игл с разбросом в 30 градусов в направлении игрока, а также убегает с увеличенной скоростью, когда Ритка слишком близко подходит. Под лапками у дикобраза во время "убегания" еще что-то типа пыли добавил, выглядит очень забавно 😅
Больше всего времени заняла разработка разброса для игл. Я хотел полностью сам все сделать и разобраться, а только потом уже гуглить готовое решение, поэтому долго тупил, зато теперь знаю, что в Godot все на радианах, а не на градусах.. знал бы я раньше, сэкономил бы пол часика как минимум точно😢
Я даже чет рисовал чтобы визуализировать это все дело, ну оно даже помогло
Еще иглы уменьшают свою скорость по мере "летения" вплоть до половины изначально скорости, это прям добавило динамичности, а то если иглы с одной скоростью летели бы, то это было бы слишком топорно
Вот кстати моё решение для разброса игл:
И решение с интернета (намного лаконичнее и лучше):
#ritkarampage #godot #разработка
Сегодня полностью доделал врага-дикобраза, теперь он стреляет от 1 до 3 игл с разбросом в 30 градусов в направлении игрока, а также убегает с увеличенной скоростью, когда Ритка слишком близко подходит. Под лапками у дикобраза во время "убегания" еще что-то типа пыли добавил, выглядит очень забавно 😅
Больше всего времени заняла разработка разброса для игл. Я хотел полностью сам все сделать и разобраться, а только потом уже гуглить готовое решение, поэтому долго тупил, зато теперь знаю, что в Godot все на радианах, а не на градусах.. знал бы я раньше, сэкономил бы пол часика как минимум точно
Я даже чет рисовал чтобы визуализировать это все дело, ну оно даже помогло
Еще иглы уменьшают свою скорость по мере "летения" вплоть до половины изначально скорости, это прям добавило динамичности, а то если иглы с одной скоростью летели бы, то это было бы слишком топорно
Вот кстати моё решение для разброса игл:
var direction_to_player: Vector2 = global_position.direction_to(player.global_position) # получаем нормализованный вектор направления к игроку, т.е. значения тут всегда от -1 до 1, но длинна равна 1
for index in quill_count:
var quill = quill_scene.instantiate() as Node2D
var cone_from: Vector2 = direction_to_player.rotated(deg_to_rad(30)) # определяем первую границу конуса
var cone_to: Vector2 = direction_to_player.rotated(deg_to_rad(-30)) # определяем вторую границу конуса
var cone_random_point = Vector2(
randf_range(cone_from.x, cone_to.x), # выбираем случайную точку по "X"
randf_range(cone_from.y, cone_to.y), # выбираем случайную точку по "Y"
)
quill.rotation = cone_random_point.angle() # тут задаём вращение, т.е. в какую сторону полетит игла (в радианах)
И решение с интернета (намного лаконичнее и лучше):
var direction_to_player: Vector2 = global_position.direction_to(player.global_position)
for index in quill_count:
for index in quill_count:
var quill = quill_scene.instantiate() as Node2D
var random_angle = deg_to_rad(randf_range(30, -30))
var random_direction = direction_to_player.rotated(random_angle)
quill.rotation = random_direction.angle()
#ritkarampage #godot #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3