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

User Tag List

Страница 16 из 32 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя
Показано с 151 по 160 из 317

Тема: Что нужно для написания игр ?

  1. #151
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Обещанная IDE. А вот инструкция:

    1. Распаковать архив на любой локальный диск (в нем дистрибутив текстового редактора, кросс-ассемблер, эмулятор, пример программы).
    2. Установить ConText (папку ConText можно удалить после настройки)
    3. Скопировать файл z80.chl в папку с установленным ConText, подпапку Highlighters.
    4. Запустить ConText, настроить его опции (Настройки > Настройки среды) согласно приложенным скриншотам
    5. Открыть в ConText файл Sample\Sample.a80
    6. Нажать F9 для компиляции, F10 для запуска примера
    Спасибо огромное. Добавил на сайт www.z80a.ru
    Все прекрасно заработало. Теперь любой желающий может приобщиться к написанию игр на ассемблере:
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Моя 1 программа.jpg 
Просмотров:	240 
Размер:	19.2 Кб 
ID:	42547  
    Последний раз редактировалось zx-kit; 26.07.2013 в 20:53.
    "L-256"

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

  3. #152
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Наброски спрайтов движущихся объектов



    Добавил кнопку 0 - стрельба вперед.
    Последний раз редактировалось zx-kit; 26.07.2013 в 22:51.
    "L-256"

  4. #153
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Танки трех типоразмеров в движении.

    Вложения Вложения
    Последний раз редактировалось zx-kit; 27.07.2013 в 11:53.
    "L-256"

  5. #154
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,985
    Спасибо Благодарностей отдано 
    71
    Спасибо Благодарностей получено 
    266
    Поблагодарили
    102 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Обещанная IDE. А вот инструкция:

    1. Распаковать архив на любой локальный диск (в нем дистрибутив текстового редактора, кросс-ассемблер, эмулятор, пример программы).
    2. Установить ConText (папку ConText можно удалить после настройки)
    3. Скопировать файл z80.chl в папку с установленным ConText, подпапку Highlighters.
    4. Запустить ConText, настроить его опции (Настройки > Настройки среды) согласно приложенным скриншотам
    5. Открыть в ConText файл Sample\Sample.a80
    6. Нажать F9 для компиляции, F10 для запуска примера
    В анриале лучше всего в ini прописать driver=blt, а video=double

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

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    В анриале лучше всего в ini прописать driver=blt, а video=double
    У меня на виртуалке driver=blt не завелся. А video=double... Ну зажрался я, на моем мониторе double нифига не разобрать

  7. #156
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,985
    Спасибо Благодарностей отдано 
    71
    Спасибо Благодарностей получено 
    266
    Поблагодарили
    102 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    У меня на виртуалке driver=blt не завелся. А video=double... Ну зажрался я, на моем мониторе double нифига не разобрать
    режим blt плавный, как и 8ой спектакулятор. Не у всех же виртуалка

  8. #157
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Спрайты для начала есть. Теперь нужно придумать. как их лучше хранить и выводить. Скорее всего при движении по-горизонтали и вертикали будут разные процедуры. При движении по-горизонтали возможна ситуация, когда танк выезжает из-за границы экрана. То есть нужно изображать не весь спрайт, а 1 или 2 столбика. Значит нужно в процедуре вывода спрайта предусмотреть печать тех столбиков, которые входят в диапазон координат X окна игрового поля. Размер игрового поля 24 х 24 клетки, т.е. 192 х 192 точки.

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

    Так как танки движутся с максимальной скоростью 1 точка за кадр, нужно хранить 8 фаз движения на каждое направление. Это займет определенное место. На каждый типоразмер при движении влево потребуется 8 полуспрайтов по 3 столбика по 8 байтов, т.е. 192 байта. Для движения вправо еще 192 байта. Для движения вверх и вниз два спрайта по 3 столбика по 16 байтов. Таким образом на один типоразмер танков требуется 192+192+48+48=480 байтов.

    Если будет три типоразмера танков и один FT, то для изображения их движений потребуется около 2Кбайт спрайтов. Это без учета цвета.

    Однако при выводе спрайтов столбиками по 16 байтов потребует 2 раза переходить границу клетки на каждый столбик, а это около 37 тактов. Да еще проверять, входит ли этот столбик в границы экрана. Это неоправданно замедлит вывод спрайтов, которые полностью входят на экран. Наверно лучше проверять, входит ли спрайт полностью. Если да, выводить спрайт более быстрым способом - Сначала 3 байта 1 строки, потом 3 байта 2 строки и так 16 раз. Но все равно будут 2 перехода границ клеток, но это на весь спрайт, а не каждый столбик. Быстродействие тоже важно.

    Для частично отображаемых спрайтов на границах экрана потребуется отдельная процедура с хитрым алгоритмом вывода или индексной адресацией в ОЗУ спрайта, так как при отображении спрайта стольбиками байты спрайта будут браться не подряд. Или хранить спрайты как предлагал Alone Coder. При этом байты в столбике одного спрайта располагаются с шагом 256 байтов. Для перехода к следующему байту в столбике достаточно будет увеличить старший байт адреса. Т.о. данный способ хранения спрайтов подходит для более быстрого вывода спрайта строчками, а на границах экрана его можно использовать и для вывода спрайта столбиками.

    Хорошо. С хранением спрайтов разобрался. Теперь нужно написать процедуру достаточно быстрого вывода спрайта, используя процедуру оределения адреса на экране из книжки "Прикладная графика" от Инфоркома или аналогичную. Спрайты будут выводиться зигзагами. Сначала вправо, потом влево, по возможности использовать переход к следующему адресу байта на экране однобайтовыми команадами. Только при переходе через горизонтальные границы клеток потребуется более сложный способ определения следующего адреса на экране. Но он уже придуман. Занимает времени 37 тактов:
    Код:
    4  LD   A,L          ; увеличиваем номера ряда в сегменте. 
    7  ADD  A, 0010 0000 ; если был ряд номер 7 - установится флаг C (нужен переход в следующий сектор экрана)
    4  LD   L,A
    4  LD   A,H
    7  ADC  A,0          ; переходим в следующий сектор, если необходимо
    7  AND  1111 1000    ; обнуляем номер строки в клетке
    4  LD   H,A
    Последний раз редактировалось zx-kit; 28.07.2013 в 14:53.
    "L-256"

  9. #158
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Хранение спрайтов в памяти. Описание для библиотеки. Удобный способ подсказал alone (http://www.zx.pk.ru/showpost.php?p=611409&postcount=82).

    Идея такая. 256 байтов в области спрайтов выделяются для хранения первых строк нескольких спрайтов. Следующие 256 байтов выделяются для хранения вторых строк нескольких спрайтов и т.д. на всю высоту спрайта.
    При этом байты в столбике одного спрайта располагаются с шагом 256 байтов. Для перехода к следующему байту в столбике (по-вертикали) достаточно будет увеличить старший байт адреса в области спрайтов.
    Для перехода к следующему байту спрайта по-горизонтали достаточно увеличить младший байт адреса о области спрайтов.

    Таким образом, данный способ хранения спрайтов подходит для вывода спрайта как строками, так и столбцами.

    Адрес начала нужного спрайта можно определить, прибавив к адресу начала области спрайтов номер спрайта (от 0 до максимально влезшего) столько раз, сколько байтов в строке каждого спрайта. Это подходит для случая, когда все спрайты одинакового размера. Также можно составить таблицу для определения по номеру спрайта его адреса.
    Последний раз редактировалось zx-kit; 28.07.2013 в 15:56.
    "L-256"

  10. #159
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    272
    Спасибо Благодарностей получено 
    286
    Поблагодарили
    214 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    zst, не самый удобный способ кстати
    по скорости не самый быстрый и ограничение на высоту спрайта
    С уважением,
    Jerri / Red Triangle.

  11. #160
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    zst, не самый удобный способ кстати
    по скорости не самый быстрый и ограничение на высоту спрайта
    А какие еще бывают удобные и быстрые способы хранения спрайтов ? Про ограничение в высоту - не вижу ограничений. Объясните, в чем ограничение?

    У меня будут полуспрайты высотой 8 точек. 8 удобно тем, что спрайты можно нарисовать прямо на экране. И верхний сегмент картинки (2Кб) можно скопировать без преобразований в область спрайтов. Для других высот спрайтов картинку придется преобразовывать. Но это не ограничение при хранении спрайтов.

    На мой взгляд, недостатков у такого способа хранения нет.
    Последний раз редактировалось zx-kit; 28.07.2013 в 23:27.
    "L-256"

Страница 16 из 32 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. простой скрипт для написания хелпов
    от jim в разделе Программирование
    Ответов: 2
    Последнее: 09.04.2007, 14:33
  2. Ответов: 26
    Последнее: 09.08.2006, 14:48
  3. Ищу программистика для написания игры МИНОТАВР
    от TomCaT в разделе Программирование
    Ответов: 13
    Последнее: 15.04.2006, 03:09

Ваши права

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