Важная информация
Страница 3 из 59 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 582

Тема: Sea Dragon

  1. #21

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Для скорости можно скроллировать только те знакоместа, которые содержат информацию. А те, что содержат все 0 или все 0xFF, рисовать только атрибутами
    на некоторых компах такие знакоместа будут с артефактами - будет каша на экране.

  2. #22
    Activist Аватар для ace210
    Регистрация
    17.06.2009
    Адрес
    Москва
    Сообщений
    387
    Благодарностей: 312

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    Памяти свободной много, а графики мало. Сделай на каждый сдвинутый спрайтайл отдельную процедурку с встроенной графикой (причем правый край тупо печатай без маски, чтобы прошлый кадр затирать).
    Что-то думаю надо именно так и поступить. Грубый подсчет:
    1) на экране максимум 80 тайлов 8x8 = 640 байт
    2) если выводить 1 тайл на 2 знакоместа. *2 = 1280 байт надо вывести в область экрана.
    3) 1 байт выводится 16 тактов грубо говоря *16 = 20480 тактов на прорисовку ландшафта.

    Получается, ландшафт можно запросто нарисовать за 1 прерывание!

  3. #23

    По умолчанию

    а выводить как-нибудь так

    pop bc
    ld (hl),c
    inc h
    ld (hl),c
    inc h
    ld (hl),b
    inc h
    ld (hl),b
    inc h
    ...

    или

    pop bc
    ld (hl),c
    inc l
    ld (hl),b
    inc h
    ld (hl),b
    dec l
    ld (hl),с
    inc h
    ...

    Последний раз редактировалось char; 11.11.2009 в 15:14.

  4. #24
    Veteran Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    1,982
    Благодарностей: 188
    Записей в дневнике
    2

    Lightbulb

    Цитата Сообщение от ace210 Посмотреть сообщение
    Потому что если делать скроллом, то неактивный экран надо уже скроллировать не на 1, а на 2 пиксела. На это уйдет в 1.5 раза больше времени.
    ...и буржуи не поймут

    Цитата Сообщение от ace210 Посмотреть сообщение
    ...а длина ландшафта 1196 столбцов. =765К. Многовато. Только если под 1024К делать. Или делать подзагрузки (генерирование) через каждые 128К/20=6 экранов.
    Блин, я же просто про 8 сдвинутых теневых буферов толковал. Ландшафт точно так же тайлами с краю добавляется. В исходный экран без сдвига, а уже при переброске на экран в конце строки последний байтик сдвигаем и пишем в следующий буфер. В 48К все влезает, но минусы тоже есть.

    Если же решил напрямую на экран тайлы кидать:
    Цитата Сообщение от ace210 Посмотреть сообщение
    Что-то думаю надо именно так и поступить. Грубый подсчет:
    1) на экране максимум 80 тайлов 8x8 = 640 байт
    2) если выводить 1 тайл на 2 знакоместа. *2 = 1280 байт надо вывести в область экрана.
    3) 1 байт выводится 16 тактов грубо говоря *16 = 20480 тактов на прорисовку ландшафта.
    Получается, ландшафт можно запросто нарисовать за 1 прерывание!
    Я считал по-другому. В общем случае тайловый столбец выглядит вот так, сверху вниз:
    1. земля сплошная...
    2. кромка или пушка
    3. вода пустая...
    4. кромка или мина
    5. трос от мины
    6. земля сплошная...

    Сплошную землю и воду рисовать не надо - само получится. Итого три тайла 16x16 (и возможно трос 16x?) на столбец. На экране 16 полных столбцов или 15 плюс 2 обрезанных (с правым краем придется немного похимичить).

    а печатать как-нибудь так

    Полутайл 8x16 (в сдвинутом виде 8x24) побайтно:

    L1 C1 R1
    L1 C1 R1
    L2 C2 R2
    L2 C2 R2
    L3 C3 R3
    L3 C3 R3
    L4 C4 R4
    L4 C4 R4

    Движемся двойной змейкой "L1-L1-C1-C1-R1-R1-R2-R2-C2-C2-L2-L2-...",
    причем левый край предыдущий тайл не портит, а вот справа останется чистая вода либо земля.

    Первые четыре строчки:
    ld a,(hl)
    or L1
    ld (hl),a
    inc h
    ld (hl),a
    inc l
    ld bc,C1R1
    ld (hl),b
    dec h
    ld (hl),b
    inc l
    ld (hl),c
    inc h
    ld (hl),c
    inc h
    ld bc,C2R2
    ld (hl),c
    inc h
    ld (hl),c
    dec l
    ld (hl),b
    dec h
    ld (hl),b
    dec l
    ld a,(hl)
    or L2
    ld (hl),a
    inc h
    ld (hl),a
    inc h
    ...повторить то же самое на следующие четыре

    Итого 72 байта, 360 тактов только на рисование, столько же для второго полутайла (плюс down_hl, если сразу печатать весь), минус в случае каждого конкретного тайла распиханные по регистрам совпадающие байты и пропуск вывода пустого по пустому. Трос универсальной процедурой можно быстро напечатать (на входе только сдвинутый байт и адрес). Всплывающие мины либо тупо размножить еще и по вертикальным кадрам, либо усложнить каждую процедуру (down_hl уже каждые две строчки).

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

    Если я нигде не обсчитался
    Последний раз редактировалось Lethargeek; 11.11.2009 в 18:17.
    Прихожу без разрешения, сею смерть и разрушение...

  5. #25
    Activist Аватар для ace210
    Регистрация
    17.06.2009
    Адрес
    Москва
    Сообщений
    387
    Благодарностей: 312

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    Итого три тайла 16x16
    а как же тайлы просто ландшафта - (земля+вода)? Там же куча разнообразий переходов.

  6. #26

    По умолчанию

    а может эта, - скроллировать rl (hl) не весь экран, а только то, что нужно?

  7. #27
    Veteran Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    1,982
    Благодарностей: 188
    Записей в дневнике
    2

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение
    а как же тайлы просто ландшафта - (земля+вода)? Там же куча разнообразий переходов.
    Ты про сами кромки, что ли? Да не так уж их много. На каждый тайл (на все 8 сдвинутых фаз) уйдет меньше килобайта процедурами. Еще можно разными полутайлами верх-низ комбинировать. Зато справа автоматически тянется нужный хвост (вода или сплошная земля). Для особых случаев вроде мины в шахте можно добавить дополнительные кромки, которые выглядят, как сплошной квадрат. Этих может быть несколько в ландшафтном столбце, зато печатаются они очень быстро.

    ---------- Post added at 19:49 ---------- Previous post was at 19:43 ----------

    Цитата Сообщение от char Посмотреть сообщение
    а может эта, - скроллировать rl (hl) не весь экран, а только то, что нужно?
    а может эта, - ветку внимательно почитаешь?
    Последний раз редактировалось Lethargeek; 11.11.2009 в 21:45.
    Прихожу без разрешения, сею смерть и разрушение...

  8. #28

    По умолчанию

    Убивает низкая скорость
    сдвиг лодки на 1 пиксель за 2 фрейма убивает динамичность в 0
    за 2 фрейма лодка должна двигаться на 2 пикселя
    и земля тоже, если надо реальной как в оригинале динамики
    ну собственно технология то есть
    С уважением,
    Jerri / Red Triangle.
    [02.05.2014] не забудь этот день. Чубайс должен умереть. Dixi.
    [l'Abbey des morts TSEvo EV...5%] kiwi кошелек +79178162712

  9. #29
    Activist Аватар для ace210
    Регистрация
    17.06.2009
    Адрес
    Москва
    Сообщений
    387
    Благодарностей: 312

    По умолчанию

    Цитата Сообщение от char Посмотреть сообщение
    скроллировать rl (hl) не весь экран, а только то, что нужно?
    По скорости получится то же, что и если перерисовывать то что нужно, т.е. тайлами. Т.к. информацию о том где скроллировать надо еще обработать. Да еще в этом случае мины надо нарисовать поверх того, что заскроллировали (а скроллируем в этом случае только края ландшафта ведь?).

    ---------- Post added at 10:14 ---------- Previous post was at 10:13 ----------

    Буду делать тайлами. Сделаю - напишу.

    ---------- Post added at 10:18 ---------- Previous post was at 10:14 ----------

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    меньше килобайта процедурами
    Что-то уж сложно.
    Может всё таки просто тайлы выводить одной процедурой, а не зашивать их(тайлы) в множество процедур?

    ---------- Post added at 10:21 ---------- Previous post was at 10:18 ----------

    Да, и задействую, всё же, второй экран. Чтобы не заморачиваться с лучом.
    Последний раз редактировалось ace210; 12.11.2009 в 12:24.

  10. #30
    Veteran Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    1,982
    Благодарностей: 188
    Записей в дневнике
    2

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение
    Что-то уж сложно.
    Да что там сложного-то? Схема-то одна.
    Если надо, могу немного погодя в закрытый подробнее написать, чтоб тут не засорять.

    Цитата Сообщение от ace210 Посмотреть сообщение
    Может всё таки просто тайлы выводить одной процедурой, а не зашивать их(тайлы) в множество процедур?
    Так медленно же будет

    Цитата Сообщение от ace210 Посмотреть сообщение
    Да, и задействую, всё же, второй экран. Чтобы не заморачиваться с лучом.
    Да нафиг он не нужен, ежели с умом подойти
    Пускай бедолаги буржуи смогут запустить на своих реалах
    Последний раз редактировалось Lethargeek; 12.11.2009 в 16:34.
    Прихожу без разрешения, сею смерть и разрушение...

Страница 3 из 59 ПерваяПервая 1234567 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Dizzy-AGE: Dragon Valley Dizzy
    от Rindex в разделе Dizzy-AGE
    Ответов: 82
    Последнее: 02.09.2011, 17:54
  2. New CEZ Silver game: Mariano the dragon
    от riskej в разделе Игры
    Ответов: 8
    Последнее: 16.05.2008, 13:37

Ваши права

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