User Tag List

Показано с 1 по 10 из 95

Тема: Косметический ремонт REX-2

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #16

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

    По умолчанию

    Оптимизировал вывод повёрнутого спрайта, так что теперь он работает быстрее чем неповёрнутый.

    чуть подробнее

    Перенёс таблицы экранных адресов и разворота в свободную память перед теневым экраном.
    Туда сгонялся всякий мусор. Например процедура, которая высвечивает сколько мы только что набрали очков, от 100 до 900, в каждом игровом цикле записывает два байта. Когда надо засветить, то пишет в атрибутную область, а когда очков мы ещё не набрали - писала в сгонную память. Перенаправил её в ПЗУ.
    Спрайты, дроны и пули, когда персонажи вылазят за верхнюю границу игрового поля, тоже "рисовались" в этой сгонной области. Для спрайтов сделал обрезание, для дронов сделал проверку, а для пуль переставил проверку перед рисованием. Да, для пуль проверка была, но после рисования, для того чтобы удалить вылетевшую пулю.
    Потом надо будет переделать вывод красной картинки "REX" перед игрой, потому как она тоже пересекается со сгонной областью, и я её попортил.
    [свернуть]

    Но на скорости самой игры это особо не отразилось.
    Хоть в игре нет компенсаторов, зато есть балласт:
    1. Рисование статики в теневом экране(~84Кт(килотактов))
    2. Перенос теневого экрана на видимый экран (~90Кт) (LDI:LDI...)
    3. Очистка теневого экрана (~30Кт) (PUSH:PUSH...)

    Пока этот балласт не трогал, а сейчас разбираю пуледвижение и пулеобразование.
    А вообще планирую попробовать объединить эти 3 пункта, в один цикл, по всем знакоместам, статику выводить прямо на экран, и только когда надо. А пространство между статикой переносить и очищать сразу. Должно получиться быстрее. Если придётся, то включим кадровые прерывания, и засинхронизируемся.

    Поподробнее

    Движение всех пуль, зарядов, ракет и снарядов обрабатывается в одном цикле. Изменив его, мне теперь надо подправить создание всех этих типов пуль. Они создаются множеством конструкторов, которые вызывают общий родительский конструктор с несколькими входами. Сейчас всё это надо попровлять
    Каждая пуля занимает 15 байт. Она хранит двойную бухгалтерию, координаты X Y отдельно, и адрес в теневом экране отдельно. Там же хранятся, скорости (смещения за игровой цикл) по координатам и по адресу. Тип пули. Принадлежность: наша или противничья. оставшееся время жизни. Для ракет фаза движения. Статус пули: есть, нет, или исчезает. И что-то возможно ещё.
    Забавное место нашёл. Для проверки пролетает ли пуля через тайл вызывалась специальная подпрограмма проверки проходимости. Она, значит, брала байтик, и искала его среди 6 байтиков, в цикле с CPI. Сначала я её "оптимизировал" заменив этот цикл на CPIR. А потом вообще заметил, что значения проходимых тайлов это 0 и диапазон от #0E до #12. Заменил весь этот вызов на простые проверки.
    Пули рисуются первые, на чистом теневом экране. Поэтому авторы внаглую выводят их не по OR, а прям LD. Хотя возможно некоторое затирание одних пуль другими, но это не заметно.
    Турели стреляют четырёхпиксельным крестиком. А спрей стреляет покрупнее восьмипиксельным крестиком. Тип пули один и тот-же, но по разному рисуется, в зависимости от принадлежности.
    [свернуть]


    Сейчас всё это с первой фазой делаю, а потом ещё и со второй надо будет.

    Эти 7 пользователя(ей) поблагодарили Reobne за это полезное сообщение:

    Black Cat / Era CG(14.07.2022), Digitizer(15.07.2022), Djim(21.07.2022), jerri(14.07.2022), Lethargeek(14.07.2022), Oleg N. Cher(14.07.2022), tiboh(14.07.2022)

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

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

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

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

Похожие темы

  1. Ремонт Пентагона
    от geners в разделе Pentagon
    Ответов: 56
    Последнее: 29.11.2011, 09:47
  2. Ремонт Профи
    от molodcov_alex в разделе Profi
    Ответов: 7
    Последнее: 19.06.2008, 15:42
  3. Ремонт Профи
    от spleen в разделе Profi
    Ответов: 2
    Последнее: 07.04.2006, 13:23
  4. Ремонт дисководов в PDF
    от fk0 в разделе Пресса
    Ответов: 0
    Последнее: 06.02.2006, 12:18
  5. Ремонт фирменного 48-го
    от kgbplus в разделе Зарубежные модели
    Ответов: 2
    Последнее: 11.03.2005, 20:43

Ваши права

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