Читаем Она позади тебя полностью

1) Фон прокручивается на один пиксель влево. Если ячейка прокручивается полностью, тогда атрибуты прокручиваются на одно знакоместо, Карта Столкновений 1 прокручивается на одну ячейку влево, новые значения вытаскиваются из плиток и записываются в крайне правую позицию, будучи готовым представить новый кадр. Просто, чтобы раскрыть процесс прокрутки: Карта Столкновений 1 сканируется построчно как горизонтальная полоса из продолжительных не нулевых ячеек и если находятся не пустые, то только они и прокручиваются. Как вы можете представить, это происходит довольно много раз за целый экран, но поскольку вы прокручиваете не пустые ячейки, это изрядно увеличивает скорость. Нормальная полноэкранная прокрутка просто потратит множество пустого времени перемещая пустые ячейки без причины.

2) Карта Столкновений 2 заполняется нулями, стирая информацию о спрайтах предыдущего кадра. Нет необходимости стирать задний экран каждый кадр, так как он всего лишь камера хранения для ячеек графики спрайта перед выводом на главный экран.

3) Спрайты чужих перемещаются, их графические данные записываются в задний экран по одному символу, и соответствующая запись делается в Карте Столкновений 2 для каждого не нулевого символа в этом спрайте. Но, прежде чем это делать, происходит проверка с Картой 1, чтобы выяснить «если символ переместился над частью фона» и с Картой 2 «если символ уже был нарисован в этой позиции». Если после этих проверок возвращается ненулевое значение значит ничего не записывается, это предотвращает рисование спрайта над фоном или пустой траты времени на прорисовку данных, которые уже были нарисованы на заднем экране.

4) Игрок перемещает свой корабль и стреляет из своего оружия. Используя Карту Столкновения 1, мы можем проверить не столкнулся ли игрок с фоном, тогда как используя Карту Столкновения 2 мы можем проверить попал ли игрок или его оружие в спрайт и соответственно обработать это.

5) Карта Столкновения 2 сканируется вся побайтно за один раз, если значение равно нулю, то соответствующие знакоместа главного экрана заполняются нулём, перезаписывая любую графику из предыдущего кадра, ненулевое значение сигнализирует, что данные из заднего экрана должны быть использованы, снова перезаписывая графику.

Вот и все.

(Примечание переводчика: если я не ошибаюсь, то в пункте 5 должна учитываться также Карта 1, иначе фон сотрется в первом же кадре.)


Стартовый экран Спектрум версии. Все пристегнулись и готовы лететь?


Если вы решили пропустить предыдущие страницы, то все, что вам нужно знать, это то, что у меня теперь был рабочий экран прокрутки и спрайтовый движок, который работал достаточно быстро с еще небольшим запасом времени, для дополнительного кодирования, которое нужно было доделать.

Глава 3.3

Заставить каждого пришельца появиться в нужном месте и в нужное время, следуя правильному шаблону движения — это тяжелая работа, особенно на первом этапе, когда у меня не было предыдущих экземпляров чужих, от которых можно было оттолкнуться. Как я упоминал ранее, у меня было зачаточное представление о том, с какой стороны к этому подойти, спасибо моей прямоугольной раскадровке, но сейчас я должен снять это с бумаги и перенести на экран, что можно было сделать только одним способом: продолжать попытки, пока все не будет смотреться правильно. Возьмем для примера Кокон (чужой, в которого вы стреляете чтобы получить Улучшение) с типичной последовательностью спрайтов. Его можно увидеть, как входящего с правой стороны экрана, летящего вниз и приземляющегося на кусочке фона, делающего несколько шагов вперед, ожидающего, потом запускающего двигатели взлета и улетающего за пределы экрана влево. Определив правильное время, чтобы вызвать появление этого конкретного Кокона (сравнивая раскадровки прямоугольников) я разбил шаблон полета на маленькие последовательности: лети направо, иди налево, жди, улетай, лети направо, а затем собрал все вместе, так что:

а) это выглядело настолько гладко, насколько я мог сделать это с учетом ограниченного разрешения экрана Спектрума и

б) это выглядело настолько близко к оригиналу аркадного автомата, насколько я мог это приблизить.

Оригинальная графика Марка для ST: главный корабль и Круговое Оружие


Перейти на страницу:

Похожие книги

Об интеллекте
Об интеллекте

В книге "Об интеллекте" Джефф Хокинс представляет революционную теорию на стыке нейробиологии, психологии и кибернетики и описывающую систему "память-предсказание" как основу человеческого интеллекта. Автор отмечает, что все предшествующие попытки создания разумных машин провалились из-за фундаментальной ошибки разработчиков, стремившихся воссоздать человеческое поведение, но не учитывавших природу биологического разума. Джефф Хокинс предполагает, что идеи, сформулированные им в книге "Об интеллекте", лягут в основу создания истинного искусственного интеллекта - не копирующего, а превосходящего человеческий разум. Кроме этого книга содержит рассуждения о последствиях и возможностях создания разумных машин, взгляды автора на природу и отличительные особенности человеческого интеллекта.Книга рекомендуется всем, кого интересует устройство человеческого мозга и принципы его функционирования, а также тем, кто занимается проблемами разработки искусственного интеллекта.

Джефф Хокинс , Джеф Хокинс , Сандра Блейксли , Сандра Блэйксли

Зарубежная компьютерная, околокомпьютерная литература / Технические науки / Прочая компьютерная литература / Образование и наука / Книги по IT