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

User Tag List

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

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

  1. #81

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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


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

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

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

  2. #82

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

    По умолчанию

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

  3. #83

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  4. #84

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

    По умолчанию

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

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

  5. #85

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

  6. #86

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

    По умолчанию

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

  7. #87

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  8. #88

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

    По умолчанию

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

  9. #89

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    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

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    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

Ваши права

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