Я веб-разработчик, и я готов начать писать свои собственные игры.
Для знакомства я выбрал JavaScript и canvas
элемент на данный момент.
Я хочу создать такую местность в Scorched Earth.
Моя первая попытка заставила меня понять, что я не могу просто рандомизировать y
значение; должно было быть некоторое здравомыслие в пиках и впадинах.
Я немного погуглил, но либо не могу найти что-то достаточно простое для себя, либо я использую неправильные ключевые слова.
Не могли бы вы показать мне, какой алгоритм я бы использовал для генерации чего-либо в этом примере, имея в виду, что я совершенно новичок в программировании игр (так или иначе, начиная с Breakout в 2003 году с Visual Basic)?
Как насчет использования алгоритма смещения средней точки , возможно, сопровождаемого небольшим сглаживанием, например фильтрацией нижних частот, чтобы удалить слишком резкие пики? Этот подход не такой, как в Scorched Earth, но он должен обеспечить аналогичные результаты.
Я полагаю, что выжженная земля имитировала гравитацию и падающую грязь. Например, у вас не может быть слишком крутого холма, потому что иначе грязь упадет и создаст менее крутой склон.
источник
Есть другой подход, который вы можете использовать. Вы можете сложить несколько случайно сгенерированных синусоидальных волн и затем масштабировать результат, чтобы уместить его на экране. Это действительно легко на практике и дает хорошие результаты, хотя и более плавный и, возможно, более искусственный, чем скриншот из вашего примера.
Вы можете увидеть источник в javascript здесь. С некоторыми параметрами очень легко поиграться, чтобы получить разные виды местности.
https://github.com/fmstephe/Tankwars
источник