Расскажу вам как внутри устроена игрушка "Stop the ITA Express", я тут просто хлопаю в ладошки.
Игровой экран имеет размер 32x24 тайла, тайлы 8x8 пикселей плюс атрибут. Т.е. экран 256x192 = экран Спектрума.
В памяти мы храним экран в виде индексов тайлов два раза, я их назвал "экран план" и "экран факт".
Если мы хотим что-то вывести на экран -- меняем всегда только экран план. Допустим хотим вывести строку -- просто копируем символы этой строки на экран план.
Регулярно выполняется процедура актуализации экрана. Она бежит по экрану план, для каждого тайла сравнивает есть ли различие с тайлом экран факт. Только если различие есть, то делаем изменение на экране, и обновляем номер тайла в экране факт.
Сами тайлы это 9 байт -- 8 байт на пиксели плюс один байт на атрубут, всего 256 тайлов.
Если обратите внимание, большинство строк на экране в горизонтальном направлении почти одинаковы. Поэтому даже когда выполняется вроде бы большое скроллирование (поезд уезжает), реально изменений на экране не так уж и много.
Так что, на мой взгляд, игрушка в техническом плане просто прекрасна.
- - - Updated - - -
В версии для Электроника МС-0515 есть отличие -- фактически не реализован демо-режим.
В демо-режиме должна идти бегущая строка, плюс человечек должен бегать сам.
UPD: Демо-режим реализован, это в эмуляторе неправильно отвечал порт клавиатуры.




Ответить с цитированием