На что там реагировать надо? Я привел пример, как можно заполнить экран для игры Диззи по той картинке. А вам почему-то не понравилась жесткая сетка и фиксированный размер. C чего это они жесткие? Как раз наоборот - мы их можем выбирать. Какие тайлы были, такой размер и указан. Будут другие размеры - будет другая сетка. Мы сами выбираем размер тайлов и спрайтов при проектировании игры. Но если выбрали 8х8, значит так надо было. Что тут не так ?
Ну а насчет тайлов разного размера - это как-то странно, как ими заполнить экран без промежутков ? Сначала можем заполнить крупными весь экран, потом можно мелкими добавить случайные камешки или другого размера нарисовать одиночные деревья. Я ведь об этом писал.
По параметрам блиттера - так они у меня как раз такие.
По адресации - я согласен с вашим замечанием, что лучше писать по разным адресам - так и сделал, как вы написали.
Язык сломал писать все в множественном числе - перехожу на ты.
Печатать строку тайлов лучше одинакового размера (для данной полоски), при этом карта сама сможет определить адрес начала следующего спрайта в буфере спрайтов и в буфере экрана. Это же логично. Строка из спрайтов разного размера - это уже не строка, а неизвестно что.
Размер спрайтов настраивается, координаты начала строки спрайтов можно задать. Этого хватит, чтобы напечатать экран, какой желает программист.
---------- Post added at 22:18 ---------- Previous post was at 21:50 ----------
Процессор пишет команды и данные в видеокарту. Она запоминает в буфер типа FIFO и начинает работать. Z80 ее не ждет.
Объясните еще раз подробнее.Sayman подкинул хрошую идею с шейдерами, это вообще идеальный вариант, у карты грубо говоря есть FSM которая умеет команды читать и блиттер, написал простейший код в 2-3 десятка команд, видеокарта при помощи блиттера вывела вам тайловый слой, причем нет каких то заморочек с ограничением размеров итд, надо к примеру эмулировать поведение странного экрана спектрума, тот же шейдер может и эту задачу выполнять





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