|
может помните 2-ой старенький выпуск психоза? там в движке была такая фича, как текстовая аннимация. Выглядело неплохо. хотите знать как все это работало? ну для начала я переводил весь текст статьи в один большой спрайт. т.к. высота печати была b пикселей - выходило b*э2=192 байта на строку. В страничку влазило помнится 5b таких вот строчек. Весь прикол состоял в том, что когда строки выводились на экран - они выводились через одну простенькую табличку. попробую объяснить. например номер верхней строки в тексте 11. по идее надо вверху напечатать 11 спрайт, затем ниже 12ый и так далее. ну а если создать "карту" текстовых строк? т.е. вверхняя строка 11 - беру из такой таблички со смещением 11*э один байт номера страницы, где лежит спрайт строки, и два байта - адрес в этой странице. Вот вам и возможность делать текстовые анимы, изменяя эту самую табличку. также я делал и с атрибутами. В тексте, если первый байт в строке был запятая, то после него стоял код атрибута этой строки. Если же не стояло - значит у строки такой-же цвет, как и у предидущей. Составлялась таблица атрибутов для строк. т.е. 1 байт*количество строк. ну а если код после запятой был ноль - я просто сохранял смещение в спрайте атрибутов и каждый инт засылал туда случайное число. так и делались мигающие строки. только не стоит забывать, что при таком раскладе пропечатывать и атрибуты и текст приходится каждый int. также при спрайтовом раскладе можно на интах или иначе изменять готовые спайты. Я к примеру делал бегущие строчки в тексте и индикаторы на музыку - правда вставлять не стал. по причине лени. из-за нее же и анима юзалась только единственный раз ;) Еще при таком раскладе можно делать многофонтовость. Отразится все только на скорости декранча в самом начале. печатается все это, тем кто не знает ;) самым быстрым и простым способом: рор hl ld (adr),hl рор hl ld (adr*2),hl ...
Other articles:
|
|
|
|
|
|
|
|
|
Similar articles:
В этот день... 21 November