User Tag List

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

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

Комбинированный просмотр

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

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 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 (если не динамический), таблицы очков и подобное, что не требует большой скорости.

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

  3. #2

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    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"

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

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

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

Ваши права

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