Всем привет!
Как обещал заполнил сегодня врагами весь уровень, теперь сам их убить не могу ))) то патроны кончаются, то маневренности не хватает, что бы увернуться, в общем расслабиться игра совсем не дает весь уровень держит в напряжении, хотя моя игра, сам себе и читер, но для того что бы показать - читерить не стал, раза с четвертого удалось сделать скрин на страничку статьи с полным комплектом врагов.
Весь уровень мне все же удалось привести к первоначально задуманному сценарию: появляется наш вертолет, его тут же засекает центр управления и высылает разведывательные дроны, обнаружив что мы представляем угрозу для центра управления, вызываются тяжелые дроны вооруженные энергетическим оружием, разведывательные дроны получают команду атаковать, врезаясь в цель, через время появляются вооруженные дроны и начинают атаку, центр управления продолжает контролировать и вести бой, посылая в атаку все новые и новые дроны, но очень скоро алгоритм вычисляет что эта тактика не эффективна, и применяет новую тактику. Теперь вооруженные дроны должны занять позицию для атаки, а дроны разведчики должны прикрывать "артиллерию", таким образом что бы мы не могли сосредоточить огонь по врагу.
Вот такой сценарий уровня, понятно что к концу уровня мы прилетим к центру управления и должны будем его уничтожить.
Трудности при прохождении уровня, сразу мне подсказали что должны исследовать ученые: скорострельность, объем магазина, маневренность вертолета... и много еще чего придумал ))) потом обязательно расскажу.
Ну а теперь про баги с которыми столкнулся: установил 2 пулемета и открыл огонь из обоих, после некоторого времени стрельбы игра напрочь зависла, первая мысль была, что не справляется движок, уменьшил скорострельность пулемета, проблема исчезла... но когда на экране появлялось много врагов проблема вновь возникала, долго пытался понять из-за чего это может происходить, но все же нашел:
В этом цикле я ищу первую свободную ячейку массива, что бы создать пульку, но вот в чем проблема, если свободной ячейки нет код вернет значение "неопределено" и игра зависает, изменил код, но проблема осталась... массив ограничен от 1 до 20 и обращение к массиву, если свободной ячейки не найдено все равно происходит, и вполне вероятно что были и обращения типа: puli[3,27], хотя в массиве всего 20 элементов...
В общем кто пишет на паскале или дельфи имейте ввиду - такого кода, как на картинке, в программах быть не должно.
Ну и как обычно видео того что вышло:
Всем спасибо за прочтение, подписывайтесь что бы чего нибудь не пропустить.