2010-06-01 3 views
1

Я пытаюсь создать игру, похожую на this (Примечание: Когда вы нажимаете «играть», в игре есть SFX, который вы не можете отключить, поэтому вы можете захотеть для проверки объема). В частности, мне интересно узнать, как создается «бесконечный» ландшафт. Существуют ли какие-либо учебники/статьи, описывающие это? Я наткнулся на procedural generation, но я не совсем уверен, какие темы я должен искать (или если это даже процедурное поколение).2d генерация ландшафта в реальном времени

(я использую C#, но я не против языка, как я предполагаю, что теория позади него остается такой же)

ответ

2

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

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

http://www.gamedev.net/reference/articles/article655.asp

(Не уверен, если демо Марс все еще существует, или если кто-то есть машина DOS, чтобы воспроизвести его, но это хорошо пример, который показывает, как он выглядит: http://www.codermind.com/articles/Voxel-terrain-engine-building-the-terrain.html)

+0

Спасибо за ответ. Я надеюсь немного расширить эту игру, имея фактические изображения. Действительно ли это случай создания случайного числа между (например, 0-3), а затем рисование соответствующей текстуры? Или это будет совсем неэффективно, чтобы делать каждый кадр? Это также означает, что каждая ширина шага должна быть постоянной? – Skoder

+0

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

+0

Я попытаюсь объединиться с этой идеей. Спасибо за помощь! – Skoder

Смежные вопросы