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

User Tag List

Страница 29 из 32 ПерваяПервая ... 2526272829303132 ПоследняяПоследняя
Показано с 281 по 290 из 317

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

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Распаковка карты уровня в рабочую область - хорошая идея. Неплохо также еще распаковывать графику, музыку уровня, если они будут разные. Только не в #C000. В идеале, впечатать бы навсегда (на время одного уровня) страницу 7 туда и иметь оба 120-х экрана в адресном пространстве одновременно, забыв про щелканье страниц во время самой игры. Но это если только памяти хватит.
    Пока про упаковку не думал. А адрес #C000 хорош тем, что там можно меняя страницы менять уровни. Пока думаю музыку AY, если будет, разместь в сегмент стандартного экрана сразу под областью атрибутов, около 9 Кб. Пока не знаю сколько обычно занимает музыка. Затем сегмент программы и спрайтов, затем карты. Второй экран использовать пока не планирую, так как пока у меня заточены спрайты и процедуры под один экран.

    Левая часть таблицы с картами используется как раз для рабочей копии карты уровня.
    "L-256"

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

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    А адрес #C000 хорош тем, что там можно меняя страницы менять уровни.
    Ну при смене уровне же быстродействие не сильно критично... Можно распаковать/скопировать уровень в 7-й банк из любого другого. А область #C000 - #DAFF не занимай пока. Процедуры графики несложно запатчить под второй экран, зато он тебе даст гарантию отсутствия мерцания при условии, что за INT все успеет вывестись. Порядок вывода при этом может быть любым. В начале INT'а можно будет музыку поиграть и не париться.

    ---------- Post added at 22:55 ---------- Previous post was at 22:51 ----------

    Цитата Сообщение от zst Посмотреть сообщение
    Пока думаю музыку AY, если будет, разместь в сегмент стандартного экрана сразу под областью атрибутов, около 9 Кб. Пока не знаю сколько обычно занимает музыка. Затем сегмент программы и спрайтов, затем карты
    По поводу схемы памяти - предусмотри сразу, что ISR (опрос клавиатуры, плеер), таблица прерываний и основной код графики и логики должны быть в #8000 - #BFFF. В медленную память можно убрать код работы с диском, стартовое меню, final cut (если не динамический), таблицы очков и подобное, что не требует большой скорости.

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

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    16 танков от INT до начала отображения окна - это очень оптимистично. У меня только 9 успевает. Вот как получилось переделать границы обрезки.

    Я потом переделаю процедуру для печати из буфера. Тогда тоже может будет успевать печатать и 16 танков. Ваша процедура сложная - не осилю.
    Да ничего там сложного, просто расчеты границы. Без использования стека. Можно всякие трюки со скоростью танков ещё применять. Рисовать по очереди, пока один стоит (типа медленно едет), другой рисуется.

    Я надеюсь ты не будешь использовать подпрогрумму Pause из ПЗУ для ограничения скорости танков? Это делается иначе.

    Вот пример, 15 спрайтов полных 3х3. Но я бы остановился на 8-ми танках, как максимуме.

    Её фишка в том, что координаты могут быть отрицательные:

    LD D,-8 ; D=Y
    LD E,-1 ; E=X

    Это выводит спрайт без левого и верхнего слобцов.
    Вложения Вложения
    • Тип файла: zip test.zip (1,007 байт, Просмотров: 59)
    Последний раз редактировалось drbars; 22.08.2013 в 00:00.

  4. #284
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    А адрес #C000 хорош тем, что там можно меняя страницы менять уровни.
    уровней сколько будет? если 4-5 (без музыки), куда ни шло, а если больше, то увы придется паковать... В этом ничего нет сложного, а учитывая структуру карты - множество повторяющихся элементов, то упакованная она будет занимать 1-2 кб не более. в страницу можно заткнуть по 8-10 карт/уровней... это если уж не думать о подгрузке уровней с накопителя.

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Ну при смене уровне же быстродействие не сильно критично... Можно распаковать/скопировать уровень в 7-й банк из любого другого. А область #C000 - #DAFF не занимай пока.
    Если в оставшемся месте расположить таблицу с картами, то ее размер будет 37х256 клеток. Немного меньше 2х окон в высоту. Может не хватить.
    Процедуры графики несложно запатчить под второй экран, зато он тебе даст гарантию отсутствия мерцания при условии, что за INT все успеет вывестись.
    Пока постараюсь без второго экрана попробовать сделать.
    Порядок вывода при этом может быть любым. В начале INT'а можно будет музыку поиграть и не париться.
    А сколько тактов нужно, чтобы загрузить из буфера музыки очередную ноту в AY? Наверно этот буфер можно тоже размеситить в медленной памяти ?
    По поводу схемы памяти - предусмотри сразу, что ISR (опрос клавиатуры, плеер), таблица прерываний и основной код графики и логики должны быть в #8000 - #BFFF. В медленную память можно убрать код работы с диском, стартовое меню, final cut (если не динамический), таблицы очков и подобное, что не требует большой скорости.
    Понял.

    ---------- Post added at 06:18 ---------- Previous post was at 06:16 ----------

    Цитата Сообщение от Дмитрий Посмотреть сообщение
    уровней сколько будет? если 4-5 (без музыки), куда ни шло, а если больше, то увы придется паковать... В этом ничего нет сложного, а учитывая структуру карты - множество повторяющихся элементов, то упакованная она будет занимать 1-2 кб не более. в страницу можно заткнуть по 8-10 карт/уровней... это если уж не думать о подгрузке уровней с накопителя.
    Размеры и количество уровней пока не извествны. Да, наверно их можно будет ужать. Или сделать так, чтобы в 48К влез 1 уровень, а остальные загружать как независимые модули с носителя или из дополнительной памяти 128К. Сколько памяти надо под музыку и звуковые эффекты для AY?

    ---------- Post added at 07:08 ---------- Previous post was at 06:18 ----------

    Цитата Сообщение от drbars Посмотреть сообщение
    Да ничего там сложного, просто расчеты границы. Без использования стека. Можно всякие трюки со скоростью танков ещё применять. Рисовать по очереди, пока один стоит (типа медленно едет), другой рисуется.

    Я надеюсь ты не будешь использовать подпрогрумму Pause из ПЗУ для ограничения скорости танков? Это делается иначе.

    Вот пример, 15 спрайтов полных 3х3. Но я бы остановился на 8-ми танках, как максимуме.

    Её фишка в том, что координаты могут быть отрицательные:

    LD D,-8 ; D=Y
    LD E,-1 ; E=X

    Это выводит спрайт без левого и верхнего слобцов.
    Для нормализации скорости танков - у нас ведь не гонки - буду использовать HALT для пропуска одного кадра.

    Мелькающий серый бордер в вашем примере показывает, что процесс печати длится до самого низа экрана ?

    Написал подпрограмму печати спрайтов 8х8 точек из буфера печати:
    Код:
    ;===================================================================================================
    ;=  ПЕЧАТЬ СПРАЙТОВ С ЦВЕТОМ РАЗМЕРОМ 1х1 КЛЕТКУ (8х8 ТОЧЕК)                             130822-01 =
    ;=  (ADDR_BUF) = ТЕКУЩИЙ АДРЕС В БУФЕРЕ ПЕЧАТИ                                                     =
    ;=  ВХОД: B = КОЛИЧЕСТВО СПРАЙТОВ ДЛЯ ПЕЧАТИ                                                       =
    ;=  ВЫПОЛНЯЕТСЯ В НАЧАЛЕ ПРОЦЕДУРЫ ОБРАБОТКИ ПРЕРЫВАНИЙ, ПРЕРЫВАНИЯ ДОЛЖНЫ БЫТЬ ЗАПРЕЩЕНЫ          =
    ;=  ВРЕМЯ ПЕЧАТИ ОДНОГО СПРАЙТА = 234 ТАКТА Z80A                                                   =
    ;===================================================================================================
    PRINT_1X1:
            LD (STACK_POINTER),SP   ; СОХРАНЯЕМ УКАЗАТЕЛЬ СТЕКА
    1       LD SP, (ADDR_BUF)       ; ЗАГРУЖАЕМ ТЕКУЩИЙ АДРЕС В БУФЕРЕ ПЕЧАТИ
            POP HL                  ; ЧИТАЕМ ИЗ БУФЕРА АДРЕС В ОБЛАСТИ АТРИБУТОВ
            POP DE                  ; ЧИТАЕМ ИЗ БУФЕРА ЦВЕТ КЛЕТКИ В D
            LD (HL),D               ; ЗАКРАШИВАЕМ КЛЕТКУ
            POP DE                  ; ЧИТАЕМ ИЗ БУФЕРА АДРЕС ВЕРХНЕГО БАЙТА BITMAP НА ЭКРАНЕ
            POP HL                  ; ЧИТАЕМ ИЗ БУФЕРА АДРЕС ЧАСТИ BITMAP СПРАЙТА РАЗМЕРОМ 8 Х 8 ТОЧЕК
            LD (ADDR_BUF),SP        ; СОХРАНЯЕМ ТЕКУЩИЙ АДРЕС В БУФЕРЕ
            LD SP,HL                ; УКАЗАТЕЛЬ СТЕКА УСТАНАВЛИВАЕМ НА АДРЕС ЧАСТИ СПРАЙТА
            EX DE,HL                ; HL = АДРЕС ВЕРХНЕГО БАЙТА BITMAP НА ЭКРАНЕ
    ; ПЕЧАТЬ 1 И 2 БАЙТА
            POP DE
            LD (HL),E
            INC H
            LD (HL),D
            INC H
    ; ПЕЧАТЬ 3 И 4 БАЙТА
            POP DE
            LD (HL),E
            INC H
            LD (HL),D
            INC H
    ; ПЕЧАТЬ 5 И 6 БАЙТА
            POP DE
            LD (HL),E
            INC H
            LD (HL),D
            INC H
    ; ПЕЧАТЬ 7 И 8 БАЙТА
            POP DE
            LD (HL),E
            INC H
            LD (HL),D
            DJNZ 1B
            LD SP,(STACK_POINTER)   ; ВОССТАНАВЛИВАЕМ УКАЗАТЕЛЬ СТЕКА
            RET
    Последний раз редактировалось zx-kit; 25.08.2013 в 13:17.
    "L-256"

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

    По умолчанию

    Сделал пример, на базе моей процедуры вывода спрайтов на границах экрана. По Х нехватает разрядности, чтобы за край заезжать, поэтому я сдвинул Х... Мы ведь с полными координатами работаем.

    X=(X/8)-1

    Для нормализации скорости танков - у нас ведь не гонки - буду использовать HALT для пропуска одного кадра.
    Также добавил процедурку изменения скорости танка без HALT, изучи. Вообще HALT для синхронизации используется. И в твоём случае если за прерывание будет рисоваться 8 танков, 4 медленные, а остальные быстрые... и как это сделаешь с HALT?
    Медленные танки можно очередью рисовать... это значительно разгрузит проц. Пока один стоит, другой рисуется.

    Мелькающий серый бордер в вашем примере показывает, что процесс печати длится до самого низа экрана ?
    Да, почти за фрейм.
    Последний раз редактировалось drbars; 07.06.2014 в 02:36.

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

  8. #287
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Сколько памяти надо под музыку и звуковые эффекты для AY?
    музыка может быть и 5кб, может и 16 кб, в среднем где-то 10-12кб. Эффекты, если брать утилиту Shiru, то один эффект занимает 50-100 байт.

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

    По умолчанию

    Дмитрий, как совместить утилиту Shiru с реалтайм движком?
    С уважением,
    Jerri / Red Triangle.

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

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    Дмитрий, как совместить утилиту Shiru с реалтайм движком?
    Можно, но хрюкать будет

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

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    А сколько тактов нужно, чтобы загрузить из буфера музыки очередную ноту в AY? Наверно этот буфер можно тоже размеситить в медленной памяти ?
    По поводу нежатой музыки (дампа регистров AY) не могу ничего сказать. Знаю, что он громаден, но играется за копейки тактов. Если использовать классический плеер (бульбоплеер, например), он кушает примерно 4000 тактов за INT, но музыка вполне себе компактная - 3-10 Кб примерно. Но, честно говоря, я тут не большой специалист.
    P.S. Robus сделал интересный плеер, можно попробовать его. Он быстрый как минимум, музыка при этом жатая.

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

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

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

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

Ваши права

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