24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Аноны, есть простейший вопрос по физике. Учусь на программиста, делаю курсач с другом НА ЮНИТИ, весь код и спрайты свои. Я пишу код и анимирую спрайты, он рисует спрайты.
Игра - раннер, качок бежит за курицей. Игрок управляет качком, прыгая в нужный момент, курица должна маняврировать и перепрыгивать с платформы на платформу, убегая от игрока.
ЗАДАЧА: мне нужна формула, по которой курица сможет автоматически рассчитывать прыжок по дуге, как на втором пике. Скажите, куда копать в этом направлении или дайте уже существующую формулу.
>>222442873 Спасибо, буду разбираться. Если кто-то еще что-то кинет, то буду признателен. Собственно, если кто еще не понял, проблема как на этой вебм - курица должна подпрыгивать, как только видит, что под ней нихуя нет. На сколько подпрыгивать и как далеко - вопрос.
>>222443195 Вот начало уровня. Как видишь, платформы находятся на разном расстоянии. Сделаю прыжок одной силы для курицы, чтобы курица прыгала каждый раз далеко, то она будет перелетать некоторые препятствия и падать вниз.
>>222442505 (OP) Вот тебе КОСТЫЛЬ Заранее сам записываешь паттерн курицы(как будто управляешь кочком), а потом в игре воспроизводишь. И никакой ебли с формулами.
>>222443494 Могу. Могу поставить везде триггеры, при вхождении в которых курица будет прыгать с заданной силой. Но это все придется вручную вымерять, для каждого куска уровня, а уровней у меня немало.
>>222442505 (OP) Ну для начала тебе надо формулу длины дуги вычислить. Затем тебе надо вычислитт силу прыжка для того чтобы преодолеть это расстояние. И если у тебя физика прыжка работает так что чем дольше жмешь на кнопку тем выше прыжок с сохранением скорости, то по сути для курицы тебе надо будет вычислить это самое время нажатия и подставить в ее метод прыжка. А вот для того чтобы с края прыгала, ты можешь либо ставить точку триггер на самый край, либо как то вычислять, чтобы 1 раз вбил в нее код и забыл про это.
>>222442505 (OP) У меня вопрос к геймдизайну игрушки. В чем цель игры? Качку надо поймать курицу, или она просто как декорация? Если декорация, то зачем она вообще нужна? Или цель как можно быстрее поймать курицу?
>>222443040 К курице добавь объект с триггером, поставь его перед лицом курицы, на него повесь скрипт проверяющий наличие ground (проверка как с прыжками, что бы нельзя было несколько раз подряд прыгнуть). If (faceGround == false) Jump().
Можешь прыжок всегда одинаковым, но это скучный вариант.
Если хочешь прыжки разной длинны, нужно думать. Вот что мне первое пришло в голову. К объекту с триггером цепляешь еще один, содержащий 5-10 кубов тригеров, каждый из которых проверяет isGround. Чем больше кубов с isGround == false, тем больше значение jumpForce, которое передаешь в Jump().
>>222444269 Вкратце - в мире не осталось курицы и обезумевший качок гоняется за последней курицей по разным локациям, продвигаясь по сюжету. По пути попадаются разные враги, банки с протеином (для сбора), препятствия на пути, через которые нужно перепрыгивать(шипы, лужи с кислотой, пилы). Игрок пробегает уровень - получает пару картинок с сюжетом. В конце игры, при прохождении всего сюжета игрок ловит курицу. Пока что что-то такое.
>>222442505 (OP) Вариант с триггером - рабочий. Пусть эта тварь всегда подпрыгивает перед препятствием с одинаковой силой. Если падая все еще нет опоры - пусть сволота машет потешно крыльями и еще раз подпрыгивает
>>222443109 Ты видимо тоже хуй сосал, это в 7 классе не проходят, обычно в 10. Тем более такими вопросами разбирается механика как отдельная наука, хуета ты лысая
>>222444441 Точно. Можно cделать несколько лучей, который будут обозначать разную силу прыжка. 1 луч определяет пустоту под собой - 800 ед силы прыжка. 2 луч определяет пустоту под собой - 1200 ед силы прыжка. 3 луч определяет пустоту под собой - 1500 ед силы прыжка. 4 луч определяет пустоту под собой - 2000 ед силы прыжка.
Каким образом ты пытаешься это реализовать? В твоей игре учитываются величина силы? Или курица будет просто двигаться по просчитанной дуге, в зависимости от расстояния до края следующей платформы?
>>222442505 (OP) И это, сделай, чтоб расстояние до курицы не одно и тоже было, а менялось - например становилось ближе к концу уровня или просто рандомно. Добавит динамики и веселья
>>222445827 Да, в юнити есть возможность делать прыжки по дуге, прикладывая к телу импульс. Если пойму, как легче это реализовать, то буду думать в эту сторону. Может быть придется написать собственную физику для прыжка курицы по дуге, не используя встроенную в юнити физику.
>>222445998 А где ты такого друга взял, который так красиво может всё нарисовать? Я уже годами хочу свою игру попробовать сделать (умею кодить на java, php, python, c++, то есть c# проблемой не будет). И я никак не могу найти чувака, который бесплатно бы клепал арты.
>>222445998 >что тебе хочется работать за просто так Хочется и тому есть несколько причин. Мне слегка поднадоели коммерческие проекты и тестовые задания. Мне нравится арт. Мне нравится твой адекватный подход к запросу на помощь. Почему бы не уделить немного времени на любопытный проект?
>>222446436 Не-не-не, он охуенно сделал. Во-первых, ему это презентовать преподавателям, это раз. Во-вторых, качок - это нейтральный персонаж. А фитоняша с задницей уже вызывает некоторые эмоции и приятна далеко не всем.
>>222445882 Я создам тред в /gd/, когда сделаю 1)Прыгающую курицу 2)Собираемые объекты 3)Пару врагов Чтобы уровень был хотя бы немного интересен. Там треды висят годами, думаю найдешь.
>>222446981 ОП, подкину тебе идею. Сделай ей стандартный прыжок, но если под ней нет земли - она будет планировать на крыльях лол. Таким образом ты избавишь себя от ебли с формулами и разнообразишь графен
>>222447142 Ну бля а откуда вообще игровые студии берутся? Типа собираются три программиста и два дизайнера и называются девелоперами? А геймдизайнеры и сценаристы откуда берутся?
>>222447016 Вот ситуация - нужно быстро прыгнуть 4 раза. Прыг-прыг-прыг-прыг. Планирование курицы в этом случае может обосраться и она упадет под уровень прямо перед недоумевающим игроком.
>>222447249 >>222445086 Вот ситуация - нужно быстро прыгнуть 4 раза. Прыг-прыг-прыг-прыг. Планирование курицы в этом случае может обосраться и она упадет под уровень прямо перед недоумевающим игроком.
>>222451030 Конечно, ставишь тригер в нужном моменте - воспроизводится скрипт и курица прыгает. Нахуя тут что-то выдумывать - мне не понятно. Ты ещё игровой ИИ курице начни высирать в поделии уровня игра от школьников на Pygame.
>>222442505 (OP) L <= длина препятствия (которую курица должна будет перепрыгнуть) V <= скорость линейного движения курицы (c которой она бежит по горизонтали) g <= ускорение свободного падения в твоей игре (насколько быстро курица разгоняется вниз, когда падает) U0 = (gL)/(2V) - будет начальная скорость вверх, с которой курица должна подпрыгнуть. Координаты курицы во время прыжка (считаю, что она прыгает в (0, 0): X = Vt (горизонтальное перемещение) Y = U0t - (gtt)/2 (высота)
>>222451409 Представь, что уровень генерируется по отрезкам, а не статичен. И кусочков много. Штук 100. Про коллайдеры с триггером я и сам догадался, только вот нахуя мне тратить кучу часов на расставление коллайдеров, если есть возможность рассчитать прыжок по дуге.
>>222451543 Ну генерируется он, и чё? Почему бы тебе не создать несколько шаблонов с этими отрезками, в начале которого ты ставишь необходимую высоту прыжка для курицы, ну а дальше пусть уже генерирует какие хочешь уровни. Посмотри как делают люди, которые занимаются играми столько, сколько ты ещё на этом свете не прожил, те же фираксисы так и делают. Там их уровни пусть и рандомно генерируются, но из заранее заготовленных кусков. Иначе никакого геймдизайна бы в хкоме и не пахло от этой генерации бесполезной.
>>222442505 (OP) ОП, ты какую-то ерунду делаешь. Почему у тебя курица должна прыгать на разные расстояния (в силу разных препятствий)? Предположим, что ты считаешь это красиво, но тогда основная проблема не в реализации курицы, а в реализации геймплея игрока, он тоже должен прыгать на разные расстояния. От чего это зависит? Нужно зажимать пробел перед прыжком? Или ты хочешь, чтобы перед каждым новым препятствием игра сама высчитывала длину прыжка и для игрока?
>>222452640 Я перед созданием игры скачал штук 15 разных 2d-раннеров, посмотрел, как они сделали. Они делают либо 1)двойной прыжок 2)короткий прыжок при коротком нажатии на пробел и длинный прыжок при долгом нажатии пробел. 3)Комбинирование первого и второго. Я сделал так же. Возможность двойного прыжка+при зажатии пробела персонаж медленнее падает, за счет чего повышается длительность прыжка.
>>222442505 (OP) Решить проблему, конечно, можно кучей способов, как в треде насоветовали, но вычисление силы прыжка по формуле выглядело бы более элегантно и без костылей. Делай лучше как задумал.
>>222449448 Так я ж не про планирование, а про дабл/трипл джампы. Пущай курятина крыльями машет, пока под лапами земли не окажется. Это и реализовать элементарно, и для рандомных уровней подойдет - перед препятствием - триггер. Если координата петухевена ниже пола - машет крыльями и взлетает
>>222455142 Идея с фитоняшкой с жопой норм. Чтобы было 2 гг - парень и тян. Разную одежду тоже легко сделать - поверх тела качка просто налепить разную одежду, либо заменять спрайты самого тела на другие.
Ну смотри, берешь свои надизайненные левлы, находишь самый короткую яму. Делишь ее длинну на два, это будет расстояние взлета-падения = x. Ставишь два датчика земли (выше расписали), один вплотную, один на расстоянии х. Когда тригерится датчик вплотную к курице, курица по гипотенузе треугольника с катетами х и у (у - высота полета, выберешь сам) (х по горизонтали) взлетает и смешно машет крыльями в воздухе. Когда тригерится второй датчик и курица в воздухе - она по той же траектории опускается. Если надо, херану рисунок. Если заюзаешь это - называй магазин карасик молл
>>222442505 (OP) Короче. Когда курица подбегает к краю, определяешь её расстояние до следующей платформы и координаты середины между курицей и следующей платформы. Далее меняешь y координату курицы так, чтобы (Y + M.y)^2= r^2-(X+M.x)^2, где X и Y - координаты курицы, M - определённые в первом кадре координаты середины, r - расстояние от курицы до платформы, делённое на два. Если всё сделано правильно, курица опишет красивую окружность. Ray советую кастить не под курицу, а на место впереди неё, чтобы она прыгала до того как сойдёт с платформы.
Тред не читал, это же блять просто парабола по двум координатам, скорость движения по ней можешь на глаз ебануть, можешь прям рассчитатывать для каждого прыжка.
Учусь на программиста, делаю курсач с другом НА ЮНИТИ, весь код и спрайты свои. Я пишу код и анимирую спрайты, он рисует спрайты.
Игра - раннер, качок бежит за курицей. Игрок управляет качком, прыгая в нужный момент, курица должна маняврировать и перепрыгивать с платформы на платформу, убегая от игрока.
ЗАДАЧА: мне нужна формула, по которой курица сможет автоматически рассчитывать прыжок по дуге, как на втором пике. Скажите, куда копать в этом направлении или дайте уже существующую формулу.