User Tag List

Страница 7 из 10 ПерваяПервая ... 345678910 ПоследняяПоследняя
Показано с 61 по 70 из 95

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

  1. #61

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

    По умолчанию

    Цитата Сообщение от tiboh Посмотреть сообщение
    начиная с приплытия корабля и заканчивая концовкой второй части
    Если переделывать в 128-ю версию, то у Рекса есть большой резерв оптимизации.
    Сейчас экран рисуется в теневом линейном буфере с нуля (обнуление PUSH,PUSH,PUSH...), послойно, а в конце статика. И переброска (POP DE: LDI, LDI, LDI...) Прерываний строго нет.
    Можете глянуть приложенный файл, я там сделал переброску буфера в экран после рисования каждого слоя. На 30% скорости эмуляции ещё виднее.
    Так вот, теоретически можно попробовать не рисовать статику в каждый цикл, а всё подвижное рисовать промеж статики (она точно по знакоместам). Синхронизировать с прерываниями. И может использовать 7-ю страницу, чтоб не перебрасывать, а переключать.

    Но это всё мечты. Проще слепить 128к версию, где все уровни упаковать в доп память, и распаковывать очередную фазу по мере прохождения.
    Вложения Вложения

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

  3. #62

    Регистрация
    19.01.2005
    Адрес
    Наро-фоминск
    Сообщений
    2,010
    Спасибо Благодарностей отдано 
    510
    Спасибо Благодарностей получено 
    207
    Поблагодарили
    126 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что-то подобное сделал KSA в Stormlord's Collection: https://vtrd.in/release.php?r=23b048...5677e157fda4e8
    после прохождения части грузится следущая. Ну и в случае 128к можно уместить оба рекса в памяти.

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

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

    Цитата Сообщение от Reobne Посмотреть сообщение
    Не замечал.
    Там ждётся нажатие кнопки, потом отпускания. Два раза одну и туже кнопку выбрать нельзя. Даже если дребезг, то как это помешает?
    Я во второй фазе, фиксил дребезг, который мешал ввести пароль.
    Странно, не могу теперь это вопроизвести. USP в Arco linux, скорей всего было неактивно окно эмулятора.

  4. #63

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

    По умолчанию

    Картошками я называю летающие хреновинки, округлые, размером примерно в знакоместо, которые изначально установлены на экране, случайно ползающие. Часто они изначально спят в разрушаемом камне. Если этот камень расстрелять, то через четыре игровых цикла картошка проснётся.

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

    В оригинальной игре был такой недочёт. Проверялось, рядом ли картошка с краем экрана, и если рядом, то направление меняется на противоположенное, и счётчик прямого хода устанавливается на 4. Естественно прогер хотел, чтобы она отражалась от краёв. Но иногда, случалось неприятность. В момент попадания на край, у картошки кончался прямой ход, и она выбирала направление от края. Затем проверка показывала, что, а мы оказывается на краю, направление менялось на противоположенное, и делался ещё один шаг к краю. Плюс счётчик прямого хода в 4. И вот мы уже углубились в зоны края экрана, и постоянно меняя направление дёргаемся там. А случайное направление больше не вызывается, потому что счётчик прямого хода не обнуляется.

    Пропатчил я это место (C0E0..C148). Утрамбовал всё. Добавил, чтобы проверялось конкретно: зашли на левый край, значит скорость вправо; зашли на правый край, значит скорость влево, и по вертикали то же.
    Байтов хватило тика в тику.

    Что получилось, см. снапшот.
    Вложения Вложения
    Последний раз редактировалось Reobne; 20.06.2022 в 17:35.

  5. #64

    Регистрация
    08.01.2007
    Адрес
    г. Красноярск
    Сообщений
    1,355
    Спасибо Благодарностей отдано 
    347
    Спасибо Благодарностей получено 
    1,508
    Поблагодарили
    307 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    Но это всё мечты. Проще слепить 128к версию, где все уровни упаковать в доп память, и распаковывать очередную фазу по мере прохождения.
    Этого было бы вполне достаточно. Как вариант, можно ещё добавить возвращение на предыдущий экран, как это сделано в этом релизе - https://vtrd.in/release.php?r=ccdd27...34ffac37ab1717
    Только без оживления убитых врагов.
    И ещё непонятно, как Rex из демо версии с кораблём должен переходить на первый игровой экран (первой части), судя по карте прохода там нет.

  6. #65

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

    По умолчанию

    Цитата Сообщение от tiboh Посмотреть сообщение
    Как вариант, можно ещё добавить возвращение на предыдущий экран, как это сделано в этом релизе
    Сначала надо-бы найти или придумать научнофантастическую причину, почему Рекс не может долго находится на одном экране. Потому что свободный проход несколько ломает это ограничение. Или остаток времени на экране тоже сохранять?
    Цитата Сообщение от tiboh Посмотреть сообщение
    Только без оживления убитых врагов.
    А с переносом на платформу врагов тоже не оживлять?
    Цитата Сообщение от tiboh Посмотреть сообщение
    И ещё непонятно, как Rex из демо версии с кораблём должен переходить на первый игровой экран (первой части), судя по карте прохода там нет.
    Ну это можно сделать, например так. Сделать чтобы был проход, но чтобы он заваливался после прохождения. Или чтобы Рекс попадал туда, через особую телепортационную.
    Но больше всего мне нравится вариант, сделать ещё один экран, сразу под стартовым. В него мы заходим через тоннель слева из демоуровня. Из него можно идти направо, к поездам, а можно подняться наверх, и впрыгнуть в изначально стартовый экран, прям из пола под платформой возрождения.

    Нарисовал

    Как сделать гладкий переход из первой фазы во вторую, придумать тоже надо. Тут мы на лифту поднимаемся, а потом из телепорта выходим, негладко. Возможно, в промежутке, опять загрузить демо-фазу, и из неё использовать некоторые экраны, с голубыми блоками. Тем более голубые блоки появляются вкраплениями в конце первой фазы.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Rex new screen.png 
Просмотров:	151 
Размер:	10.6 Кб 
ID:	77481  

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

    kyv(20.06.2022)

  7. #66

    Регистрация
    08.01.2007
    Адрес
    г. Красноярск
    Сообщений
    1,355
    Спасибо Благодарностей отдано 
    347
    Спасибо Благодарностей получено 
    1,508
    Поблагодарили
    307 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    Сначала надо-бы найти или придумать научнофантастическую причину, почему Рекс не может долго находится на одном экране. Потому что свободный проход несколько ломает это ограничение. Или остаток времени на экране тоже сохранять?
    Я бы вообще выкинул ограничение по времени нахождения на одном экране, но добавил запрет двигающимся врагам появляться на экране после окончания времени, чтобы Rex не смог собирать бонусы бесконечно долго.

    Цитата Сообщение от Reobne Посмотреть сообщение
    А с переносом на платформу врагов тоже не оживлять?
    По идее да, если Rex убил (взорвал) статичного врага (пушку, ракетницу), то его уже быть не должно. Можно конечно предположить, что вражеские солдаты устанавливают новую технику, взамен взорванной...

    Эти два вопроса нуждаются в дискуссии.

    Цитата Сообщение от Reobne Посмотреть сообщение
    Ну это можно сделать, например так. Сделать чтобы был проход, но чтобы он заваливался после прохождения. Или чтобы Рекс попадал туда, через особую телепортационную.
    Но больше всего мне нравится вариант, сделать ещё один экран, сразу под стартовым. В него мы заходим через тоннель слева из демоуровня. Из него можно идти направо, к поездам, а можно подняться наверх, и впрыгнуть в изначально стартовый экран, прям из пола под платформой возрождения.

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

    Цитата Сообщение от Reobne Посмотреть сообщение
    Как сделать гладкий переход из первой фазы во вторую, придумать тоже надо. Тут мы на лифту поднимаемся, а потом из телепорта выходим, негладко. Возможно, в промежутке, опять загрузить демо-фазу, и из неё использовать некоторые экраны, с голубыми блоками. Тем более голубые блоки появляются вкраплениями в конце первой фазы.
    В принципе, достаточно нарисовать на стартовом экране второй части кусочек лифта уходящий вниз, и сделать чтобы Rex по нему поднялся вверх на платформу. Получается всё логично, прямой лифт снизу из первой части, во вторую. Небольшие отличия в расцветке лифта значения не имеют, просто покрасили одну часть лифта в один цвет, другую в другой.

    Этот пользователь поблагодарил tiboh за это полезное сообщение:

    Reobne(22.06.2022)

  8. #67

    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,966
    Спасибо Благодарностей отдано 
    1,074
    Спасибо Благодарностей получено 
    1,168
    Поблагодарили
    911 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tiboh Посмотреть сообщение
    Я бы вообще выкинул ограничение по времени нахождения на одном экране, но добавил запрет двигающимся врагам появляться на экране после окончания времени, чтобы Rex не смог собирать бонусы бесконечно долго.
    Ну по идее это довольно сильное упрощение Если делать, то лучше как опцию.
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  9. #68

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

    По умолчанию

    Забавное "кругосветное" путешествие по коду у меня получилось. В поисках причины почему лазер стреляет коротко.

    подробности

    Начал с ловушки нажатия клавиши огонь. Обнаружил, что зачем-то оно вызывается 2 раза, когда можно просто сохранить результат первого в стеке. Поправил, зачем лишнее время тратить.
    Потом разбирал что делается при выстреле лазером, я-то наивный думал, что делается такая себе пуля, только длинная. Но нет, делается короткая пуля. Но эта короткая лазерная пуля помнит где она появилась, и 8 циклов делает в этом месте ещё по одной лазерной пуле, которые уже новых пуль не рождают.

    Поэтому без разницы что будет с Рексом после выстрела, он может уйти, упасть и отвернуться, лазерный луч будет продолжать выходить из одной и той же точки. Но если лидирующая пуля попадёт во что нибудь, или покинет экран, то генерация луча тут-же прервётся. Поэтому стрелять лазером в упор не так эффективно. Если лазерная пуля лидер успеет создать побольше хвостовых пуль, то все они более массово вопьются в цель.

    В общей куче, каждая пуля занимает 15 байт. Последний байтик, как раз, и хранит, сколько циклов осталось пуле лететь. А оно инициализируется из ячейки A068. А эта ячейка пишется.. в процедуре увеличения уровня оружия, которую я уже разбирал. И я вернулся туда, где уже был. Если бы я тогда потрудился узнать, где значение A068 используется, то уже бы наладил лазер, продолжая думать, что лазерный луч - одна длинная пуля.

    Ячейка A068, конечно писалась, но только когда уровень оружия повышался. А когда уровень оружия понижался - нет, и когда оружие
    полностью прокачивалось, и начиналось качаться следующее - тоже нет. Как будто не туда эту формулу влепили, или продублировать забыли.

    Переставил так, чтобы ячейка A068 всегда соответствовала уровню оружия из которого стреляем.
    [свернуть]

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

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

    Bedazzle(23.06.2022), Black Cat / Era CG(22.06.2022), Digitizer(22.06.2022), kyv(22.06.2022), Lethargeek(24.06.2022), mastermind(01.07.2022)

  10. #69

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

    По умолчанию

    Про дроны.

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

    Переписал саму процедуру движения дронов, чтобы работала без костыля. Заодно ускорил и сократил. Выиграл 66 байт.
    Жалко, столько байт пропадает, хочу что нибудь вставить.
    Например, чтобы дроны крутились в ту сторону, куда повёрнут Рекс. (Как в Киберноиде).
    Или чтобы дроны не так резко появлялись и исчезали.
    Вроде это не должно сломать игру?

  11. #70

    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,966
    Спасибо Благодарностей отдано 
    1,074
    Спасибо Благодарностей получено 
    1,168
    Поблагодарили
    911 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Даже не знаю.
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

Страница 7 из 10 ПерваяПервая ... 345678910 ПоследняяПоследняя

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

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

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

Ваши права

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