Quote:
..А как быть с противниками? Они тоже генерятся случайно? Там присутствует момент, когда танчик выезжает на берег и пуляет, но всегда при этом попадает в бак с топливом. В чем причина такого поведения? Неужели настолько хитроумный алгоритм генерации задействован?
Хитроумного вообщем-то ничего нет, главное "отпалировать" отработать это все хорошенько...
Quote:
Я больше склоняюсь к версии, что если карты вроде бы как генерируются на ходу (или они генерятся только при первом запуске),
При каждом новом уровне задается стартовое ГСЧ=уровень, т.е своя последовательность для этого ВСЕГО «страхомудия» (т.е карта противники их выстрелы, задержки движения противников и т д.) ТОЛЬКО НА ЭТОТ УРОВЕНЬ.
Quote:
то расстановка объектов все равно жестко задана.
Да все оно задано ЖЕСТКО в зависимости от ГСЧ, каждая процедура которая отрабатывает карты, а другая противников будет зависить от ГСЧ.
Я очень много наблюдал и думал о риверрайде...
Вот представь себе, что генератор для этого всего единственный, а противники (объекты) это ТЕЖЕ "точки" в ландшафте (карте)... поэтому он и будет генерить ВСЁ, повторяю ВСЁ, абсолютно одинаково и противников и их выстрелы в бак и т.д. в зависимости от стратового числа генератора. ЭТО ВСЕ зависит только от генератора, а не от "твоих движений» и выстрелов самолетом. Я не могу понять почему ТЫ это не можешь понять…:-)
Вот пример алгоритма, который словами выглядет может и сложно но пишеться легко…
Существет генератор ГСЧ(а), которы при Стратовых числах задет определенную последовательность следующих чисел
При ГСЧ(1), где 1 – это номер уровня, послед: 33 43 23 56 58 98 97 67 65 42 23 48 90 76 45 34 22 32
При ГСЧ(1), где 2 - это номер уровня, послед: 98 07 18 20 31 72 94 68 24 87 35 62 93 84 71 09 27 83
Создание уровня идет пошагово (по линиям), на ходу, за пределами экрана, скажем вверху (экрана) и дальше уже при появлении на экран «входит в действие».
Установать номер уровня генератору ГСЧ=УРОВЕНЬ.
Задать x1=ГСЧ,x2= ГСЧ коодинаты моста
Задать x1=ГСЧ,x2= ГСЧ ширину «реки»
Сводить линии от моста к «ширину «реки»
Брать «коблебания» «реки» из ГСЧ х1,х2 (повторить это =ГСЧ раз)
....
если ГСЧ=0 = нет противника
если ГСЧ=1 Установить противника ,ГСЧ=1- то воздушный шар, задать его координаты x1=ГСЧ,x2= ГСЧ,задержку движения=ГСЧ и т.д.
…
(повторить это =ГСЧ раз+ уровень), (чем больше уровень тем больше объектов противников.)
Если счетчик "линий уровня" = 1000, тогда уровнень=уровень+1 задать ГСЧ(уровень)
Порвторить это все.
Вот мысленно прокрути это все… при ГСЧ(1), ГСЧ(2) и т.д. подставляя числа из последовательности…
В процедурах создания карты и противников ты можешь вытворять что хош для «созднания красоты»... доспустим «если неудачно заданы х1, и х2 запросить их еще раз у ГСЧ»… И чтобы ты не делал, если все зависит от ГСЧ, у тебя каждый ДРУГОЙ уровень будет уникальный, но КАЖДЫЙ ТОТ ЖЕ УРОВЕНЬ БУДЕТ ТАКИМ ЖЕ! ОДИНАКОВЫЙ И ЖЕСТКО зависим от стартового ГСЧ, и картой и протвиниками и их движениями, и выстрелами в координаты» ОДИНАКОВЫМИ И ЖЕСТКО ЗАВИСИМЫМИ ОТ СТАРТОВОГО ГСЧ.
Все «твои» «ЕСЛИ» будут корректировать Уровень так «как надо», но тоже получиться что – ЖЕСТКО зависимо от стартового ГСЧ и соотв-нно от дальнейшей последовательно ГСЧ.
Хух… Надеюсь ты меня понял…