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

User Tag List

Страница 1 из 23 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 228

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

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

    По умолчанию Портирование игр с PC на БК

    Разобрался в формате хранения лабиринта в игрушке LastMission.

    Вопрос в следующем:
    Как лучше масштабировать скрины лабиринрта под под разрешение БК? (320x200->256x256)
    т.е. имеется скрин 40x17 тайлов (тайлы 8x8) соответсвенно 320x136.

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

    рисовать под это дело редактор лабиринта как-то не хочется..чтобы вручную компоновать похожую картинку (в лабиринте 91 скрин).

    может nzeemin подскажет..

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,754
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    141
    Спасибо Благодарностей получено 
    1,172
    Поблагодарили
    769 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от S_V_B Посмотреть сообщение
    Как лучше масштабировать скрины лабиринрта под под разрешение БК? (320x200->256x256)
    а не проще (если речь про это)

    взять с такого же спека 256х192 ?

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

    По умолчанию

    Я на PC расковырял, к сожалению в спектруме не силен и к тому же там однобитная картинка с атрибутами.. а на PC один в один 4я палитра БК11.
    Последний раз редактировалось S_V_B; 20.09.2018 в 20:20.

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

    По умолчанию

    1. Что если высоту оставить как есть, а ширину пережать в масштабе 1.6 (было 320, станет 200) – каждые 8 пикселей исходного изображения переводим в 5 пикселей на БК, например по схеме 1,1,0,1,1,0,1,0 (единица – берём пиксель, ноль – пропускаем)? Правда, тогда на БК останутся пустые поля со всех сторон экрана, но это даже хорошо для быстродействия.
    То что спрайты получатся 5x8 – не вижу особой проблемы. Мне удалось написать достаточно быстрый вывод пропорционального шрифта (каждая буква произвольной ширины). Со спрайтами можно ещё ускорить.

    2. Второй вариант – обрезать исходную картинку слева и справа на 32 пикселя, а по высоте умножить на 1.6 (дублировать строки так, чтобы 5 строк превращалось в 8). Тогда высота лабиринта получится не 136, а 218 пикселей и останется 38 пикселей на отображение жизней и прочей информации.

    3. И третий вариант – выбрать масштаб 1.25. Тогда по горизонтали 320 пикселей пережимаются в 256 по схеме 1,1,1,1,0 (выкидывается каждый пятый пиксель), а по вертикали масштаб 1.28 – строки дублируются так, чтобы 136 превратилось в 174.

    Все три варианта показал на картинках:


    1. горизонтальное сжатие 5:8




    2. по горизонтали обрезаем, по вертикали растягиваем 8:5




    3. по горизонтали сжимаем 4:5, по вертикали растягиваем 32:25
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	the_last_mission_2c.jpg 
Просмотров:	253 
Размер:	28.1 Кб 
ID:	66311   Нажмите на изображение для увеличения. 

Название:	the_last_mission_2b.jpg 
Просмотров:	251 
Размер:	26.0 Кб 
ID:	66310   Нажмите на изображение для увеличения. 

Название:	the_last_mission_2a.jpg 
Просмотров:	261 
Размер:	27.0 Кб 
ID:	66309  
    Последний раз редактировалось Manwe; 21.09.2018 в 10:46.
    manwe.pdp-11.ru

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

    По умолчанию

    По первому варианту: по краям комнаты встречаются подъемники- отрезать, танк не пролезет.
    По второму: для экономии памяти лабиринт запакован и тайлы прорисовываются в нужных местах исключая пустоту.. тайлы 8x8 иногда причудливо стыкуются. просто так каждый четвертый пиксель не уберешь.. в одном байте 4 точки где занимать убранную?
    По третьему, у БК не хватит ни памяти ни быстродействия масштабировать картинку на лету. На PC я так и сделал только в большую сторону..

    В других палитрах (0 и 11) тоже прикольно:
    Нажмите на изображение для увеличения. 

Название:	2018-09-21_14-40-50.jpg 
Просмотров:	331 
Размер:	22.4 Кб 
ID:	66323Нажмите на изображение для увеличения. 

Название:	2018-09-21_14-39-31.jpg 
Просмотров:	331 
Размер:	22.5 Кб 
ID:	66321
    Нажмите на изображение для увеличения. 

Название:	2018-09-21_14-40-08.png 
Просмотров:	386 
Размер:	8.5 Кб 
ID:	66322Нажмите на изображение для увеличения. 

Название:	2018-09-21_14-38-12.png 
Просмотров:	373 
Размер:	8.3 Кб 
ID:	66320
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	2018-09-21_14-27-21.jpg 
Просмотров:	309 
Размер:	22.1 Кб 
ID:	66314  
    Последний раз редактировалось S_V_B; 21.09.2018 в 12:13.

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

    По умолчанию

    1.
    По второму: для экономии памяти лабиринт запакован и тайлы прорисовываются в нужных местах исключая пустоту.. тайлы 8x8 иногда причудливо стыкуются. просто так каждый четвертый пиксель не уберешь.. в одном байте 4 точки где занимать убранную?
    масштабирование – это первый вариант. Спрайты отмасштабированы заранее, вывод на экран делается тайлами 5x8. Да, это сложней и медленней, чем сразу 16-битные слова кидать на экран, но это возможно. В конце концов, отрисовка происходит один раз, лабиринт-то статичный. А анимированные объекты должны скакать не по тайлам, а двигаться плавно по одному пикселю. То есть вывод спрайта с произвольной точки всё равно придётся делать.

    2.
    Цитата Сообщение от S_V_B Посмотреть сообщение
    По первому варианту: по краям комнаты встречаются подъемники- отрезать, танк не пролезет.
    с отрезанием – это второй вариант. Если разбить лабиринт на экраны с меньшим «окном», придётся чуть подправить топологию лабиринта, где надо. А можно даже замахнуться на скроллинг.

    3.
    Цитата Сообщение от S_V_B Посмотреть сообщение
    По третьему, у БК не хватит ни памяти ни быстродействия масштабировать картинку на лету. На PC я так и сделал только в большую сторону..
    налету ничего не нужно, конечно! По вертикали заранее отмасштабировать все спрайты: было 8 пикселей, стало 10.
    Последний раз редактировалось Manwe; 21.09.2018 в 11:46.
    manwe.pdp-11.ru

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

    По умолчанию

    /*чуть подправить топологию лабиринта, если надо.*/
    Редактор все таки придется делать..я пролистал все скрины в принципе сжимать не нужно, только нужно буквально в каждом скрине в повторяющихся местах убирать колонки.. места правда каждый раз разные.. нужно исключать проходы и всякие механизмы.. а потм запаковать все обратно.
    Была мысль докручивать скролингом комнату когда танк к середине подъезжает, но прикинул сколько появится лишних наворотов и одумался.

    Кстати можно поточнее по поводу вывода спрайта в произвольную точку..если есть исходник (пока в асм PDP и БК в частности не силен) мысли конечно есть но туманно: арифметическим сдвигом каждое слово в обе стороны хвосты отрезать, а потом кусок соседнего ORом накладывать?

    P.S. /for Manwe/
    GoodApple.EXE синий смайл в обоих случаях

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

    По умолчанию

    Вот здесь исходник пропорционального шрифта: http://thesands.ru/bk0010/font-converter/
    Идея в том, что каждое 16-битное слово спрайта хранит точки не слева направо, а сверху вниз.
    В случае шрифта можно отрисовывать буквы сразу на экран, а в случае игры с лабиринтом лучше сперва нарисовать игровое поле в буфер памяти (он получится повёрнутым на 90 градусов, потому что хранение спрайтов такое). Когда кадр полностью подготовлен, выводить из буфера на экран только изменившиеся тайлы с поворотом на 90 градусов. Поворот – небольшая процедурка, её можно посмотреть в исходниках по ссылке.
    manwe.pdp-11.ru

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

    По умолчанию

    т.е. у нас в памяти перевернутый буфер и в нем мы по Y как по X ориентируемся но по точкам.. x+100

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

    По умолчанию

    Да. Если буфер размером не с целый экран, а поменьше, можно его поплотней уложить. Скажем, если игровая область 136 точек в высоту, то это соответствует 17-ти словам. Значит, в буфере каждый столбец пикселей будет занимать 17 слов и следующий столбец будет начинаться сразу за ним. А если ещё и в ширину игровое поле всего лишь 200 точек, то получаем 6800 байт (15220 в восьмиричной системе). Что очень даже приемлемо. Поэтому первый из предложенных мной вариантов кажется разумным. Надо лишь немного подрисовать спрайты после горизонтального ужатия 5:8



    P.S. в палитре 11 очень хорошо выглядит! (жёлтый, красный, голубой)
    Последний раз редактировалось Manwe; 21.09.2018 в 13:17.
    manwe.pdp-11.ru

Страница 1 из 23 12345 ... ПоследняяПоследняя

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

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

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

Ваши права

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