Для этого вы можете использовать шум 1D Perlin . Вот изображение 2D шума. Я взял образцы, где красная линия, и умножил их на некоторую константу, чтобы получить зеленую линию.
Константа, на которую вы умножаете значения, будет определять высоту шума. Таким образом, вы можете легко увеличить сложность. Еще одним преимуществом шума Perlin является то, что он может генерировать мозаичный шум, так что вы можете создать, казалось бы, бесконечный уровень.
Если вы хотите создать дно и потолок, важно, чтобы вы не создавали непроходимых областей. Самым простым способом было бы просто использовать «верхнюю» часть шума (например, 1.0 - noiseValue
) в качестве потолка, а нижнюю часть ( noiseValue
) - для нижней (с некоторым смещением между ними, конечно). Если это выглядит слишком скучно, вы можете также рассмотреть два близких образца, например. представьте еще одну красную пробную линию на один или два пикселя вверх или вниз. Это даст похожую, но не идентичную волну.