HARDWARE 56
разных сторон, а часто и полностью отказываться от скроллинга. Даже с такими ограничениями, немногие игры шли со скоростью 25 кадров в секунду, а большинство игр работало со скоростью 1 6, 1 2 или 1 0 кадров в секунду, и даже меньше в некоторых трёхмерных играх. Эти цифры не случайны, они зависят от того, сколько телевизионных кадров, неизменно следующих с частотой 50 в секунду, затрачивала та или
Qj]gbv_^k]
Две буквы находятся в центре знакомест. В одном знакоместе выбраны красный и жёлтый, в другом - синий и белый цвета. В области вокруг этих знакомест выбраны чёрный и белый цвета.
Теперь буквы смещены на три пикселя влево и вышли за пределы своих знакомест, окрасившись в цвета соседних.
иная игра на одну перерисовку экрана - 2, 3, 4, 5 и так далее. Из-за технических ограничений ZX Spectrum реализация плавного скроллинга, с шагом меньше 8 пикселей, сталкивается с массой проблем. Наиболее заметная визуальная проблема - так называемый "атрибутный клэшинг", возникающий из-за низкого цветового разрешения. Цвет задаётся не для каждого пикселя, а для блоков 8x8, "знакомест". Выходящая при скроллинге часть графики одного знакоместа окрашивается в цвета другого знакоместа. Эту проблему можно обойти хорошей планировкой графики, например разделяя разноцветные элементы промежутками в 8 пустых пикселей по направлению скролла. Тогда клэшинг будет заметен только на спрайтах, выводимых поверх фона. Его также можно уменьшить, выводя спрайты "за" фоном, то есть просто не выводя части спрайта, попадающие в знакоместа, в которых присутствует фон. Примеры удачного решения этой проблемы - игры Zynaps и Dark Fusion. Но чаще всего разработчики игр просто отказывались от использования цвета, если в игре присутствовал плавный скроллинг. Остальные проблемы связаны с быстродействием процессора, организацией видеопамяти и объёмом ОЗУ параметрами, так или иначе влияющими на скорость отрисовки, а значит и на скорость прокрутки, то есть скорость перемещения героя игры по уровню. Так как это очень важный параметр игрового процесса, разработчики игр были вынуждены искать
GQR ZX Spectrum Хотя объём ОЗУ ZX Spectrum существенно больше объёма ОЗУ 8-битных игровых консолей, не стоит забывать, что в него должно помещаться всё - и программный код, и данные графики, и всевозможные игровые переменные. За счёт размещения видеопамяти в общем ОЗУ фактически программам доступно чуть больше 41 КБ. Для сравнения, в самой минимальной конфигурации приставка Денди (NES) позволяет использовать 32 КБ памяти для кода, 8 КБ для графики, 2 КБ ОЗУ для хранения переменных и 2 КБ видеопамяти - в сумме 44 КБ, что вполне сравнимо, хотя и накладывает некоторые ограничения. компромиссы, чтобы и перемещение происходило с подходящей скоростью, и прокрутка была по возможности плавной, и всё это поместилось в память компьютера. Вертикальный скроллинг с любым шагом делается относительно просто. Область экрана в ОЗУ организована в виде перемешанных определённых образом строк по 32 байта, хранящих биты 256 пикселей одной строки экрана - по биту на точку. Достаточно копировать побайтно строки фона в нужные места в памяти, например