User Tag List

Страница 63 из 71 ПерваяПервая ... 596061626364656667 ... ПоследняяПоследняя
Показано с 621 по 630 из 703

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

  1. #621

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

    По умолчанию

    Координаты спрайта

    В некоторых старых играх спрайты выводятся не вертикальными столбиками из байтов, а горизонтальными линиями из байтов. При этом, для экономии места, спрайты иногда перед выводом сдвигают программно на нужное количество битов. Чтобы облегчить доработку таких игр добавляются следующие переменные, где 0-7 = номер байта в линии спрайта, A-D (или E-H) = байты 1-4 для соответствующего режима цвета:

    A0, A1, A2, A3, A4, A5, A6, A7,
    B0, B1, B2, B3, B4, B5, B6, B7,
    C0, C1, C2, C3, C4, C5, C6, C7,
    D0, D1, D2, D3, D4, D5, D6, D7,

    или

    E0, F0, G0, H0,
    E1, F1, G1, H1,
    E2, F2, G2, H2,
    E3, F3, G3, H3,
    E4, F4, G4, H4,
    E5, F5, G5, H5,
    E6, F6, G6, H6,
    E7, F7, G7, H7,

    Например, для вывода с маской в байты A0-A7 (или E0-E7) записываются 1-8 байтов маски, а в байты B0-B7 (или F0-F7)— соответствующее количество байтов спрайта.

    Координаты на экране левого байта линии спрайта предварительно задаются следующими переменными:

    x — мл. байт координаты X в пикселах
    xh — cт. байт координаты X в пикселах
    или
    xc — координата X в знакоместах
    xs — смещение по-горизонтали в знакоместе

    y — мл. байт координаты Y в пикселах
    yh — cт. байт координаты Y в пикселах
    или
    yc — координата Y в знакоместах
    ys — смещение по-вертикали в знакоместе

    Это позволяет рисовать спрайты на экране с расположением с точностью до пиксела.
    Последний раз редактировалось zx-kit; 03.10.2015 в 05:54.
    "L-256"

  2. #622

    Регистрация
    02.11.2007
    Адрес
    г. Краснодар
    Сообщений
    293
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А как быть если в это байте уже стоят две точки с соседнего спрайта, то есть я должен сделать буфер спрайта, сдвинуть его столько раз сколько надо для смещения 1-7, потом считать 2 байта из экрана куда нужно выводить, очистить биты куда буду выводить, наложить туда байт из буфера, и положить всё это обратно на экран, то же самое сделать для соседнего байта. Тек что ли?

  3. #623

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

    По умолчанию

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    Да какие уж там проценты - одного человека достаточно, например вот человек спрашивает как побыстрее линию нарисовать - http://zx-pk.ru/showpost.php?p=811234&postcount=43 - ему если дать аппаратную точку или линию, он глядишь и DOOM соберёт ))
    Теперь появляется возможность рисовать точками в нужном цвете, если задавать в соответствующих переменных координаты точки и рисовать в режиме COLOR1C.

    Цитата Сообщение от Nesser Посмотреть сообщение
    А как быть если в это байте уже стоят две точки с соседнего спрайта, то есть я должен сделать буфер спрайта, сдвинуть его столько раз сколько надо для смещения 1-7, потом считать 2 байта из экрана куда нужно выводить, очистить биты куда буду выводить, наложить туда байт из буфера, и положить всё это обратно на экран, то же самое сделать для соседнего байта. Тек что ли?
    Надо рисовать в дополнительном слое и использовать маску для задания прозрачного цвета на краях спрайта.

    ---------- Post added at 07:40 ---------- Previous post was at 07:30 ----------

    Цитата Сообщение от Nesser Посмотреть сообщение
    а как мне вывести того же самого колобка который двигается с точностью 1 пиксель во все стороны?
    Теперь способ найден.
    Последний раз редактировалось zx-kit; 03.10.2015 в 05:33.
    "L-256"

  4. #624

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,081
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    480
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    zst, ты думал про то, что в большей части игр сам спрайт взаимодействует с содержимым экрана? (например игры серии Dizzy). Как думаешь этот момент проработать?

    ---------- Post added at 12:23 ---------- Previous post was at 12:16 ----------

    Ещё мне не очень понятны как отслеживать пересечения спрайтов.

  5. #625

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

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    zst, ты думал про то, что в большей части игр сам спрайт взаимодействует с содержимым экрана? (например игры серии Dizzy). Как думаешь этот момент проработать?
    Как именно взаимодействует? Мне надо посмотреть примеры кода. Особо интересует для игры Dizzy XII: Underground Если имеется ввиду наложение по маске и клешинг атрибутов, то тут вопрос уже решен. Рисовать не в промежуточный буфер, а прямо на экран в дополнительный слой №1.
    Ещё мне не очень понятны как отслеживать пересечения спрайтов.
    Это отслеживать как обычно по аркадным атрибутам. Если имеется ввиду наложение изображений двух спрайтов - то просто рисовать в дополнительном слое с учетом маски. Они наложатся без клешинга. У каждого спрайта может быть свой цвет.
    Последний раз редактировалось zx-kit; 03.10.2015 в 09:33.
    "L-256"

  6. #626

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,103
    Спасибо Благодарностей отдано 
    1,337
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    drbars, Прям на пиксельном уровне? Таких игр, думаю, не большинство.
    Леменги, может древние лабиринты - бродилки на чистом фоне.
    А на атрибутном уровне... ну, просто оставить этот атрибутный уровень да и всё.

  7. #627

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,081
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    480
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Как именно взаимодействует?
    Занули в анреале область с #4000 до #57FF и получишь эффект.

    Цитата Сообщение от zst Посмотреть сообщение
    Мне надо посмотреть примеры кода. Особо интересует для игры Dizzy XII: Underground Если имеется ввиду наложение по маске и клешинг атрибутов, то тут вопрос уже решен. Рисовать не в промежуточный буфер, а прямо на экран в дополнительный слой №1.
    Изучай http://opensourcezx.untergrund.net/a...y_xxi_src.html

    Цитата Сообщение от zst Посмотреть сообщение
    Это отслеживать как обычно по аркадным атрибутам. Если имеется ввиду наложение изображений двух спрайтов - то просто рисовать в дополнительном слое с учетом маски. Они наложатся без клешинга. У каждого спрайта может быть свой цвет.
    Имеется в виду не наложение, флаг пересечения спрайтов с пиксельной точностью. Для определения коллизий.

  8. #628

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

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    Занули в анреале область с #4000 до #57FF и получишь эффект.
    Как это сделать ?
    Там исходники в XAS на диске TRD без комментариев. Чем отличается от дизассемблера UNREALе ? Ведь ты знаешь где эти места в коде ?


    Имеется в виду не наложение, флаг пересечения спрайтов с пиксельной точностью. Для определения коллизий.
    Такое наверно не используется. В Денди например как делают ? Там нет пикселов.

    ---------- Post added at 12:26 ---------- Previous post was at 12:22 ----------

    Кстати как в UNREALE вставить кусок дизассемблированного текста в файл ?
    Последний раз редактировалось zx-kit; 03.10.2015 в 10:26.
    "L-256"

  9. #629

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,293
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,457
    Поблагодарили
    947 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Кстати как в UNREALE вставить кусок дизассемблированного текста в файл ?
    если сразу в программу то в мониторе alt+r (load data to memory from binary file)

  10. #630

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,081
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    480
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    zst, идея карты такова чтобы избавиться от клешинга: значит тебе просто напросто нужно сделать такую железку, чтобы было несколько битпланов стандартного 6912 экрана. Причем чтобы записывать ты мог в любой из этих битпланов, а читать уже только сложенные битпланы со стандартного адреса.
    Как маскировать спрайт на битплане, чтобы сложение было без клешинга на экране можно придумать... Может автомаска? Запись в нужный битплан включать командой OUT.

Страница 63 из 71 ПерваяПервая ... 596061626364656667 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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