Техника - молодёжи 1994-10, страница 48КЛУБ Э Л Е К Т Р О Н Н Ы X ИГР отребительское качество игры, загружаемой с дискеты/кассеты, либо вшитой в ПЗУ картриджа телевиэион ной приставки, определяет в первую очередь графика С точки же зрения программиста, она — это главный пожиратель машинной памяти, аппетиты которого следует умерять всеми дозволенными путями. Разумеется, разные компьютеры располагают неодинаковым арсеналом изобразительных средств. Простейшее иэ них и самое лаконичное — псевдографика: мозаичная картинка, как в детском конструкторе, составляется из стандартных "кубиков". Машина распознает их по раз и навсегда приписанным номерам и обращается точно так же, как с буквами или цифрами. Хотя псевдографикой вооружены в основном самые простые машины, унаследованный от нее блочный принцип, как мы скоро увидим, используют и другие. Чтобы построить на экране изображение, надо всего-навсего иметь возможность, подобно пуантилисту, придать каждой его точке желаемый цвет. Ее обеспечивают системы точечной графики, входящие в инструментарий более совершенных компьютеров. Цвет точки определяет группа битов — один для монохромного режима, два для че- CYRUS CHESS II. Для построения любой ситуации на шахматной доске достаточно набора из 26 стандартных элементов. тырехцветного и т.д. Поэтому, чем изображение красочнее, тем больше памяти занимает, а она отнюдь не бесконечна. Проблему решают различными способами, суть которых одна: ограничение числа цветов, сосуществующих на малых участках экрана. Можно, скажем, выбирать для каждой строки или линии сканирования усеченную, допустим, 16 цветную палитру из всего доступного спектра На том же основана и атрибутивная графика: изображение на протяжении байта или нескольких считается мо нохромным, а еще один байт — атрибут — задает для данного интервала соответствующие два цвета фона (paper — "бумага ) и собственно рисунка (ink — "чернила"). И все равно изображения поглощают изрядные объемы памяти: полный экран — это многие килобайты или даже десятки их, а сколько сменяющихся кар инок бывает в игре? Но программисты, сталкиваясь с такого рода трудностями, неизменно одерживают победу. Широко распространен своеобразный гибрид псевдо- и точечной графики: каждое полноразмерное панно конструируется из заранее созданного набора блоков. В некоторых играх, часто довольно сложных, этим все и кончается, Как к примеру, отобразить шахм тную позицию? Фигур шесть: король, ферзь, слон, конь, ладья и пешка. Бывают они черные и белые, каждая может стоять на черном или на белом поле. Кроме того нужны пустые черное и белое поля. Получается 'таблица Менделе ева" всего из 26 элементов. Ничего больше для шахматной программы любой силы, с точки зрения изобразительного искусства, не требуется. Так же строится графика и многих других игр, в том числе динамичес ких. Принцип компьютерной анимации — создания движущихся изображений — ничем не отличается от кино статичные кадры по следовательно сменяют друг друга, а глаз воспринимает это как движение. Но каждый новый кинокадр всегда выводится на экран целиком (иное было бы затруднительно), компьютерный же, как правило, только частично. Ведь он занимает не жалкие к адрат ные сантиметры пленки, а полноценные ки-лобаи ы памяти. Да и время, необходимое для смены изображения, пропорционально его объему: очень быстрое чередование очень больших картинок затруднительно. Эти ограничения особо ущественны для 8-разрядных компьютеров и игровых приста вок — у них и память послабее, да и быстродействие не то. Здесь усматривается еще одна аналогия с кино, точнее, с мультипликацией: если бы художник выписывал каждый кадр целиком, на фильм не хватило бы ни сил, ни времени. Он идет на ухищрение: рисует отдельно пейзаж и отдельно — все, что бегает, ползает и летает. Потом накладывает одно на другое — и порядок. Создатели компьютерных игр не стали изобретать велосипед: тоже создают по отдельности фон (рисуют целиком или собирают из' кубиков ) и движущиеся объекты — так называемые спраиты Но здесь возникают дополнительные сложности. В конце концов, когда зритель смотрит муль-тик, его не слишком волнует, сколько часов затратил, допустим, Уолт Диснеи на сотворение того или иного гениального кадра. Иное дело — пользователь компьютера. Ведь каждое изображение рождается буквально на глазах; желательно, чтобы "роды" не затягивались. Есть и еще один нюанс. Спрайт имеет обычно прямоугольн ю форму — так с ним удобнее работать, проще декартовых координат еще ничего не придумано, — ив этот прямоугольничек, по мимо ^посредственно изображения, входят и совершенно ненужные краевые байты - собственный фон спрайта. Представьте МАРЬЯЖ. Чтобы отобразить на экране карточные расклады, тоже требуется ограниченное число элементов. себе, что мультипликатор начертал "спрайт" какого нибудь Винни-Пуха на листке и прямо в таком аиде наложил на лес ной пейзаж. Бумага естественно, частично заслонит деревья. Поэтому художник вырезает "спрайт" ножницами или сразу рисует на прозрачной пленке. Как проделать подобное в компьютере? Самый тривиальныи способ — дублирование глобального фона на полях спрайта. Наш мультиплика ор мог поступить так же, изображая, скажем, полет самолета в чистом олубом небе. Ему не обязательно прибегать к ножницам или тратиться на пленку: достатс чно покрасить >умагу в небесно голубые тона. Есть целый ряд :итуаций, когда этот метод вполне ффективен. Например, при не-перемещающемся, хотя и "оживленном спрайте. Так, в отечественной игре "Поле чудес' ведущий с выразительной мимикои блистает остроумием, но его голова остается в одном и том же выделенном квадр ти ке. Эффект анимации достигается элементарно лицо Л.Якубовича в разных фазах по следоват льно выводится на экран, остальное вообще не меняется. Ничуть не сложнее показать движение спрайта на нейтральном фоне (именно этим занимался наш мультипликатор в последнем примере). В игре Tetris и ее аналогах геометрические фигурки падают внутри одноцветного стакана; в космических стрелялках" грандиозные заездные Техника-молодежи 48 0 ' 9 4 |