Важная информация

User Tag List

Страница 9 из 23 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя
Показано с 81 по 90 из 228

Тема: Портирование игр с PC на БК

  1. #81
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    262
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    206 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от S_V_B Посмотреть сообщение
    /* ксттати не заметил особо вывода поточечно */
    Потому что на спеке однобитная графика, а на БК двух.
    чиво? я про освежение экрана под ДОСом


    короче посмотрел как сделано на спеке
    да сделано поточечно но сами спрайты выводятся просто бросаясь на экран

    не знаю можно ли так на БК

    выделяется место в памяти на спрайт в ширину на 1 байт больше
    т.е если спрайт 8*4 = 32 байта
    то выделяем 8*5 = 40 байт
    копируем спрайт в новый буфер
    и в нем выскраливаем на нужную позицию
    потом этот модифицированный спрайт перемещаем на экран.
    С уважением,
    Jerri / Red Triangle.

  2. #82
    Veteran
    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,396
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    136 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вся заморока с поворотом спрайтов из за того, что БК работает со словами, а не байтами и блоки тайлов 6ти битные чтобы влезло в 256 точек БКшкиного экрана.
    Последний раз редактировалось S_V_B; 30.09.2018 в 09:23.

  3. #83
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    262
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    206 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от S_V_B Посмотреть сообщение
    Вся заморока с поворотом спрайтов из за того, что БК работает со словами, а не байтами.
    я тя умаляю
    где в ластмиссион требуется разворот спрайтов?
    спрайт летящей пушки? так там всего 7 спрайтов на всю пушку
    и 2 спрайта на платформу
    С уважением,
    Jerri / Red Triangle.

  4. #84
    Veteran
    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,396
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    136 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    /* я тя умаляю
    где в ластмиссион требуется разворот спрайтов? */

    Не отзеркаливание спрайтов, а предварительный разворот на 90 градусов, чтобы по точкам выводить на БК, причины см. выше.

  5. #85
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    262
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    206 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от S_V_B Посмотреть сообщение
    /* я тя умаляю
    где в ластмиссион требуется разворот спрайтов? */

    Не отзеркаливание спрайтов, а предварительный разворот на 90 градусов, чтобы по точкам выводить на БК, причины см. выше.
    ну я тебе предлагаю другой вариант
    скроллить в буфере и выводить на экран

    а вот этот вот поворот я рекомендую оставить для тайлов
    С уважением,
    Jerri / Red Triangle.

  6. #86
    Veteran
    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,396
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    136 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я его тоже первоначально предлагал, но как выяснилось тратится гораздо больше памяти для хранения спрайтов особенно если они не кратные слову, а по скорости то на то и выходит.

  7. #87
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    262
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    206 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    S_V_B, размер спрайтов врагов 16х16
    размер спрайта героя 32х16
    платформа тоже что-то вроде.

    но вывод по точкам никогда не был быстрым
    это было просчитано еще в 80х
    С уважением,
    Jerri / Red Triangle.

  8. #88
    Veteran
    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,396
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    136 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если выводить словами на БК ,будет скакать по 4 точки, что некрасиво.
    Размер экрана CGA 320x200, а БК 256х256 поэтому спрайты тоже придется сжимать чтобы они соответствовали окружению, что делает их не кратными слову.
    Это мы уже обсуждали выше. Мы же фигней страдаем не от хорошей жизни Я тоже привык как минимум к 8bpp

  9. #89
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    262
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    206 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от S_V_B Посмотреть сообщение
    Если выводить словами на БК ,будет скакать по 4 точки, что некрасиво.
    Размер экрана CGA 320x200, а БК 256х256 поэтому спрайты тоже придется сжимать чтобы они соответствовали окружению, что делает их не кратными слову.
    Это мы уже обсуждали выше. Мы же фигней страдаем не от хорошей жизни Я тоже привык как минимум к 8bpp
    ты меня не понимаешь

    прежде чем вывести байт с точностью в 4 точки
    ты копируешь его в буфер спрайта и сдвигаешь в нужном тебе направлении
    и спрайт размера 32 точки на 16 точек становится спрайтом 40 точек на 16 точек

    я понятно объяснил?
    С уважением,
    Jerri / Red Triangle.

  10. #90
    Veteran Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,722
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    403
    Поблагодарили
    256 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от S_V_B Посмотреть сообщение
    сделать базовую для всех процедуру и к ней уже.. вывод тайла, спрайта, символа и строки.
    Универсальная процедура всегда медленней. Лучше лабиринт выводить одной процедурой, а подвижные спрайты другой.

    Теперь уже можно запаковать лабиринт.
    Да, хранить лучше запакованным. Но текущую комнату придётся хранить в памяти в распакованном виде чтобы сверяться с расположением препятствий.

    Пробовал сжимать спрайты - некрасиво получается
    Так а я вроде сжал уже. Надо найти время и руками подправить.

    Сейчас доделаю перевод спрайтов в текст, чтобы вставлять их в исходник, так будет удобней с указателями работать.
    Ничего не удобней! Только время компиляции зря вырастет.
    Спрайты лабиринта (тайлы) все одинакового размера, их удобно хранить как у меня сделано. А спрайты врагов и пушки+платформы можно хранить отдельно. Для каждого сделать свою метку и прописать там insert_file (посмотри мои исходники).

    - - - Добавлено - - -

    Цитата Сообщение от jerri Посмотреть сообщение
    выделяется место в памяти на спрайт в ширину на 1 байт больше
    т.е если спрайт 8*4 = 32 байта
    то выделяем 8*5 = 40 байт
    копируем спрайт в новый буфер
    и в нем выскраливаем на нужную позицию
    потом этот модифицированный спрайт перемещаем на экран.
    Довольно очевидное решение, но неэффективное: требует промежуточной памяти, имеет сложности с наложением на фон и пересечением с другими объектами и т.п.
    Моя процедура оптимизирована: рисует столбец точек и если в нём остались только чёрные точки, то не рисует их и переходит сразу к следующему столбцу.


    Цитата Сообщение от jerri Посмотреть сообщение
    ты меня не понимаешь
    прежде чем вывести байт с точностью в 4 точки
    ты копируешь его в буфер спрайта и сдвигаешь в нужном тебе направлении
    и спрайт размера 32 точки на 16 точек становится спрайтом 40 точек на 16 точек
    я понятно объяснил?
    Да все всё поняли, мы обсуждали это ещё в начале темы (но за неравнодушие спасибо!)
    Во-первых, выводить байты долго. Быстрее слова. А это значит, что изображение кратно уже 8-ми точкам. То есть иногда придётся скроллить аж по 7 точек (14 команд ROR для одного регистра и столько же для второго, в который перетекают данные через бит C). Это медленно.
    Во-вторых, спрайт платформы у нас 25 точек в ширину, потому что мы пережимаем спрайты с PC под пропорции экрана БК. Ради хранения такого спрайта из 25-ти точек придётся тратить не 50, а 64 бита в памяти. Которой мало. А спрайтов много.
    Ну и в-третьих, описываемый тобой метод, действительно, можно применить, но сразу на экране, чтобы сдвигать спрайты (если они не анимированы) на 1 точку влево или вправо. Попробуем совместить эти два метода. У нас же цель - минимальный расход памяти + максимальная производительность + максимальная плавность.
    Последний раз редактировалось Manwe; 30.09.2018 в 10:54.
    manwe.pdp-11.ru

Страница 9 из 23 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Портирование Lode Runner БК->УКНЦ
    от nzeemin в разделе ДВК, УКНЦ
    Ответов: 103
    Последнее: 12.12.2020, 04:04
  2. Ответов: 21
    Последнее: 04.10.2019, 18:03
  3. Портирование Stop the Express
    от nzeemin в разделе ДВК, УКНЦ
    Ответов: 90
    Последнее: 21.11.2018, 09:46
  4. Ответов: 38
    Последнее: 23.11.2014, 16:00

Ваши права

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