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

User Tag List

Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 41 по 50 из 70

Тема: LASER BASIC 2

  1. #41
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,440
    Спасибо Благодарностей отдано 
    192
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    61 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    Игровое меню. Лень заполнять служебное окно. Пока от спрайтов отказываюсь в пользу UDG, так как нет редактора спрайтов.
    Pr.7z
    А как же: http://vtrdos.ru/system.php#s28
    или нужен на пц?

  2. #42
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    deleted
    Последний раз редактировалось drbars; 22.09.2016 в 03:21.

  3. #43
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,598
    Спасибо Благодарностей отдано 
    2,182
    Спасибо Благодарностей получено 
    137
    Поблагодарили
    103 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    drbars, это не моя процедура :-) Это из книжки "Как написать игру на ассемблере".

    По поводу хранения спрайта строками. Фактически переход к следующему байту строки это INC L (INC E), а к следующему байту столбца - INC H (INC D). Равнозначно. От постолбцового вывода выигрыш на спрайтах маленького размера, < 8. На практике таких спрайтов большинство. И наоборот - для вывода больших спрайтов-пейзажей обычно не требуется особая скорость (если требуется - применяются совсем другие методы). Потому что по столбцам во внутреннем цикле гарантированно выводится 8 байт, а по строкам меньше. А LDI использовать нельзя - у нас логические операции.
    Последний раз редактировалось Oleg N. Cher; 18.09.2016 в 17:49.

  4. #44
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Oleg N. Cher, следующий этап — сохранение фона перед выводом спрайта, и при последующем выводе восстановление и новое сохранение. В случае использования логических наложений, особенно с маской это обязательно.

  5. #45
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,598
    Спасибо Благодарностей отдано 
    2,182
    Спасибо Благодарностей получено 
    137
    Поблагодарили
    103 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  6. #46
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Oleg N. Cher, вот пример... вывод спрайта с маской без таблиц движения. Делал для игры, но потом переписал под табличный способ.
    http://zx-pk.ru/threads/23544-vyvod-sprajta-po-x-y.html

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

  8. #47
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    я же вас на неё ловлю. ;-)


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

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    чтобы поменять в байте порядок битов на обратный (отзеркалить) можно ли действовать эффективнее, чем в этой процедурке?
    А эффективнее по памяти или по скорости? По скорости таблица вне конкуренции - 32 такта на байт.

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

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Но тут для меня начинается высшая математика и что-то непостижимое.
    Чем-то помочь, рассказать?

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

    Цитата Сообщение от drbars Посмотреть сообщение
    Oleg N. Cher, следующий этап — сохранение фона перед выводом спрайта, и при последующем выводе восстановление и новое сохранение.
    Для этого в библиотеке надо поддержать непрямоугольные спрайты, иначе для фигуристых спрайтов будет работать очень медленно и жрать пямять. Вот тут как бы и начинается специфика Спектрума: в одних играх спрайты прямоугольные и такие извращения будут тормозить, в других нудна поддержка непрямоугольных спрайтов, в результате общие библиотеки неэффективны, каждый пишет своё с учетом 1000 и одного нюанса.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  9. #48
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,598
    Спасибо Благодарностей отдано 
    2,182
    Спасибо Благодарностей получено 
    137
    Поблагодарили
    103 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Alex Rider, я обязательно воспользуюсь любезным предложением помочь с матчастью: туда дальше вынесу на общую разработку пару своих идей игр, просто не надеюсь, что кто-то захочет присоединиться, из-за чего интерес не очень сильный. А так - художник нужен, музыкант, возможно, хард-кодер ассемблерщик. Но двигаться конечно планирую в своём контексте, т.е. писать на Обероне.

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

    Я просто не собираюсь писать игры со всякими фигурными спрайтами, масками и прочим, отсюда и такой скромный круг задач, которые я перед собой ставлю. Выше головы не прыгнешь - пусть игры делают те, у кого талант. Я со своей стороны буду совершенствовать ZXDev.

    Про зеркалирование: конечно интереснее оптимизировать по скорости, но если табличка будет 256 байт, а у меня в игре всего один спрайт, который нужно зеркалить, и он шириной 2 знакоместа, то тут начинается стрельба по воробьям. В целом же было бы интересно сделать максимально эффективно по скорости, разумно по памяти, но без таблицы.


    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    На обероне можно повторить буратино? ) Если да, то быть может можно взять графику и повторить, просто одну стартовую улицу, не всю игру конечно.
    ZX_NOVOSIB, как видим, желающих клонировать Буратино не наблюдается. Никому не интересно.

    P.S. Кстати, я адаптировал к ZXDev пару процедур атрибутного скроллинга из Supercode. То есть, Supercode намечен. Присоединяйтесь.




  10. #49
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    deleted
    Последний раз редактировалось drbars; 22.09.2016 в 03:21.

  11. #50
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,486
    Спасибо Благодарностей отдано 
    220
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Про зеркалирование: конечно интереснее оптимизировать по скорости, но если табличка будет 256 байт, а у меня в игре всего один спрайт, который нужно зеркалить, и он шириной 2 знакоместа, то тут начинается стрельба по воробьям.
    Так может дать возможность выбора разработчику - скорость или размер?

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

    Если нужно развернуть не один байт, а изображение спрайта в памяти,
    то обработать попарно можно так (для простоты только внутренний цикл):

    Код:
    col_mirror_loop:
    	dec     hl
    	ld      a, (de)
    	ld      c, (hl)
    
    	; ------------------
    	; byte mirroring
    	; ------------------
    	DUP 8
    	rla
    	rr      c
    	EDUP
    	; ------------------
    
    	rla
    	ld      (de), a
    	ld      (hl), c
    
    	inc     de
    	djnz    col_mirror_loop

Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя

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

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

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

Похожие темы

  1. LASER BASIC
    от VETER в разделе Программирование
    Ответов: 8
    Последнее: 04.01.2015, 04:48
  2. laser basic
    от johnny в разделе Программирование
    Ответов: 32
    Последнее: 17.02.2014, 22:57
  3. LASER BASIC decompiled by HVG
    от Raydac в разделе Программирование
    Ответов: 0
    Последнее: 21.12.2009, 23:04
  4. Возрождение Laser Squad
    от Odrick в разделе Игры
    Ответов: 17
    Последнее: 08.11.2005, 02:18
  5. Re: Laser Genius
    от Oleg Golenkoff (2:451/19) в разделе Софт
    Ответов: 3
    Последнее: 01.10.2005, 06:06

Ваши права

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