User Tag List

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

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

  1. #621
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    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
    Activist
    Регистрация
    02.11.2007
    Адрес
    г. Краснодар
    Сообщений
    255
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  3. #623
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    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
    Guru
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,016
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    110 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

  5. #625
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    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
    Veteran
    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,046
    Спасибо Благодарностей отдано 
    982
    Спасибо Благодарностей получено 
    246
    Поблагодарили
    123 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  7. #627
    Guru
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,016
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    110 сообщений
    Mentioned
    6 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
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    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
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,813
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    149
    Спасибо Благодарностей получено 
    1,194
    Поблагодарили
    787 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  10. #630
    Guru
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,016
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    110 сообщений
    Mentioned
    6 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

Ваши права

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