User Tag List

Показано с 1 по 10 из 703

Тема: Новый графический режим для игр

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Линии и буквы - это нужно. Но давайте все делать поэтапно. Добавим потом. Пока линии будем рисовать спрайтом с одной точкой, а буквы будут одного цвета. Давайте вернемся к выводу картинок в обычных играх. Например, мы хотим сделать новую игру "Диззи".



    Когда Диззи переходит в другое место надо нарисовать картинку/фон, а потом Диззи. На приведенной картинке видно, что она рисуется из нескольких типов маленьких картинок-квадратиков размером 8х8 точек. Их называют тайлами. Нарисуем на черновике область размером 32х24 клетки и пронумеруем каждую клетку номером тайла. Теперь нам надо изобразить эти тайлы на экране.

    Начнем заполнение экрана с левого верхнего угла. Установим координаты Y=0, X=0. Далее укажем размеры тайла LY=8, LX=8, количестов тайлов в строке К = 32. Потом подаем команду PRINT, 32 номера тайлов. Видеокарта принимает поток данных и записывает в буфер команд. И постепенно начинает по номеру и размеру тайла высчитывать адрес в буфере спрайтов, адрес на экране, копировать по 8 точек за раз. Короче - заниматься своими делами.

    А в это время Z80 меняет координаты на Y=8, X=0, команду PRINT, другие 32 номера тайлов. Так мы зарисуем тайлами весь экран.

    Теперь нам надо нарисовать Диззи. Он у нас размером 20х15 точек. Значит LY=20, LX=15. Далее координаты, например, Y=152, X=201. Спрайт один, значит К=1. Далее команду PRINT, номер спрайта Диззи.

    И все. Как видите, все просто и быстро.
    Спрайт с номером 0 не копируется - только пропускается место размером со спрайт. Это почти как пробел в тексте, только картинка под ним не будет затираться. Это позволит выводить тайлы и спрайты с промежутками. Например, когда нужно наложить сверху второй план: редкие камешки, кустики, травинки, деревья и т.п. объекты.

    Нужно определиться с количеством байтов на каждый параметр. LY, LX, К - по одному байту, Y, X, N - по два (YH, YL, XH, XL, NH, NL). Тут все понятно.
    Но нужно проработать эффективную систему для записи команд в видеокарту. Мы можем выделить 256 разных адресов для разных команд или подавать их все через один адрес, чередую КОМАНДУ и ДАННЫЕ или передавать КОМАНДЫ и ДАННЫЕ с помощью команды LDIR через область 256/512 байт. Какой способ лучше ?
    Последний раз редактировалось zx-kit; 21.06.2015 в 07:17.
    "L-256"

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 18
    Последнее: 11.04.2021, 10:54
  2. графический редактор
    от yur в разделе Вектор
    Ответов: 1
    Последнее: 08.11.2012, 13:01
  3. графический режим на Атари
    от goblinish в разделе Atari
    Ответов: 3
    Последнее: 06.01.2012, 11:19
  4. графический софт для 48 К
    от goglus в разделе Софт
    Ответов: 6
    Последнее: 02.08.2006, 15:33

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •