User Tag List

Страница 14 из 59 ПерваяПервая ... 101112131415161718 ... ПоследняяПоследняя
Показано с 131 по 140 из 589

Тема: Sea Dragon

  1. #131

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    Cool

    Хехе, у меня прокруткой все равно примерно 30000 получилось
    Прихожу без разрешения, сею смерть и разрушение...

  2. #132

    Регистрация
    17.06.2009
    Адрес
    Москва
    Сообщений
    401
    Спасибо Благодарностей отдано 
    421
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, действительно, 30000 получается.

    Ну что? Попробовать реализовать этот JIT scroller? Уж больно заманчивые тайминги. Нигде мы не просчитались? со спрайтами потом проблем не возникнет? Там еще сталактиты падающие, стреляющие пушки, лазеры...

    Тут с печатанием тайлов я вроде всё поджал. Особо быстрее, видимо, не получится. Эти шахты рисуются 62000 тактов. А обработка - 26000. Причем, обработку размазать по кадрам нельзя. Ее надо сразу всю делать тут.

    ---------- Post added at 18:31 ---------- Previous post was at 18:25 ----------

    Только я вот тут чуть чуть не понял:
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    Проще всего буфер закольцевать и разбить на две части командой ret
    Зачем на 2 части разбивать? Как кольцуется?
    Последний раз редактировалось ace210; 08.12.2009 в 18:31.

  3. #133

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если надо, я подробно все напишу
    Только не дави на меня
    Дай вздохнуть дня два
    Прихожу без разрешения, сею смерть и разрушение...

  4. #134

    Регистрация
    17.06.2009
    Адрес
    Москва
    Сообщений
    401
    Спасибо Благодарностей отдано 
    421
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение
    Зачем на 2 части разбивать? Как кольцуется?
    А. Всё. Разобрался. Это когда голова кончается, то головой становится хвост, и хвост начинает расти заново.

  5. #135

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb JIT scroller (single line)

    Немного просчитался - последний пиковый около 33000
    Причем прокрутками по одной строке почти столько же получилось
    Так что может быть лучше перейти на однострочную прокрутку?

    Корявый ландшафт, конечно, больше схавает, но не слишком
    (до такого пикового с шахтами не дотянет все равно)
    зато его можно будет подрихтовать

    А также подготовка и сами процедуры упрощаются

    Установка регистров:
    Код:
    Один раз на весь экран:
    	B = правый обрыв (или левая стенка шахты)
    	С = левый обрыв (или правая стенка шахты)
    
    В начале строки:
    	HL = адрес начального (правого) байта
    	A = L;  Carry = бит из подрисовки
    Фрагменты однострочного скроллера:
    Код:
    обязательный переход на шаг (4 такта)
    	dec l
    или пропуск трех и более знакомест (11 тактов)
    	sub N
    	ld l,a
    (N так же не всегда равно кол-ву пропускаемых)
    
    правый обрыв или левая стенка шахты (7 тактов)
    	ld (hl),b
    левый обрыв или правая стенка шахты (7 тактов)
    	ld (hl),с
    
    (условно) правый склон после пропуска (15 тактов)
    	sla (hl)
    (условно) левый склон после пропуска (15 тактов)
    	sli (hl)
    продолжение прокрутки (15 тактов)
    	rl (hl)
    К тому же выйдет короче, так что возможно выгодно уже
    не заморачиваться с закольцовкой и разрезанием скроллера
    а просто сдвигать его на том же месте (или в другой набор)
    таким образом избавимся от пары рестартов на строку
    Может, даже выиграем немного, позже посчитаю
    Прихожу без разрешения, сею смерть и разрушение...

  6. #136

    Регистрация
    17.06.2009
    Адрес
    Москва
    Сообщений
    401
    Спасибо Благодарностей отдано 
    421
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Revision 31

    Цитата Сообщение от ace210 Посмотреть сообщение
    Тут с печатанием тайлов я вроде всё поджал
    Всё, да не всё.

    1) Печать стрип-тайла всегда ограничивается шириной в 1 знакоместо! Раньше я этого не учитывал, шлепал лишнее знакоместо.

    Теперь, соответственно, пиковый экран печатается в 2 раза быстрее, так как там почти одни только стрип-тайлы. Получилось 34500 такта. Это без учета рисования спрайтов.

    2) Далее. На 0 кадре обыкновенные тайлы тоже можно сделать не 2 знакоместа печатать, а 1. Только нужно сделать тайл так, чтобы он на кадре предшествующем 0-му уже затер землю (нарисовал землю) сплошняком в знакоместе справа. Мне пришлось подкорректировать только 2 тайла. Их сейчас можно увидеть даже невооруженным взглядом (они нессиметричные, на 1 пиксель имеют лесенку).

    Тоже выиграл немного времени. Но это не так уж нужно. Но зато когда печатается 0 кадр то и обработка ландшафта тоже выполняется на этом кадре. Поэтому получается некая компенсация.

    3) Немного оптимизировал обработку. Выиграл на пиковом экране 4000 тактов. Сейчас 23000 тактов кушает.

    Во фрейм уложился, но итого осталось в пиковом экране на отрисовку мин около 6000 тактов.
    Всё равно маловато. Эх, жаль, что обработку нельзя размазать по кадрам. Там корректируются адреса экрана печати тайла, поэтому никак.

    Пока, наверное, не буду пробовать реализовывать JIT Scroller. Еще неизвестно что в конечном итоге там выйдет. Может быть как нибудь потом, как вдохновение появится.
    Сейчас лучше пущу усилия на спрайты. Хочется уже пострелять.
    Вложения Вложения
    • Тип файла: rar qsave1.rar (6.7 Кб, Просмотров: 189)
    Последний раз редактировалось ace210; 10.12.2009 в 18:50.

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

  8. #137

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А на цвет запас?

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

  9. #138

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хм, похоже, что двойной скроллер удастся ужать до 26000 в пике
    Прихожу без разрешения, сею смерть и разрушение...

  10. #139

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение
    1) Печать стрип-тайла всегда ограничивается шириной в 1 знакоместо! Раньше я этого не учитывал, шлепал лишнее знакоместо.

    Теперь, соответственно, пиковый экран печатается в 2 раза быстрее, так как там почти одни только стрип-тайлы. Получилось 34500 такта. Это без учета рисования спрайтов.
    Йоу, Блэр! (с)

    Красиво получилось! И очень обнадеживающе!

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

  11. #140

    Регистрация
    17.06.2009
    Адрес
    Москва
    Сообщений
    401
    Спасибо Благодарностей отдано 
    421
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Спрайты

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    мне кажется, что если печатать шахты не в виде тайлов (даже стрип-тайлов), а с помощью специализированных процедур, которые максимально быстрым образом рисуют вертикальный столбик - то может быть удастся еще что-нибудь выиграть.
    К сожалению, печать идет строго по знакострокам чтобы пристраиваться за лучом. Поэтому - никак нельзя.

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    два набора данных,
    Идея хорошая, но в мою структуру данных ландшафта вряд ли впишется. На досуге подумаю.



    Насчет спрайтов.

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

    Есть 2 метода организации.

    1) Один буфер. Как только знакострока кончается, то в буфере вместо адреса процедуры ставим 0.
    В этом случае очень усложняется заполнение этого буфера, т.к. Нужно сначала спрайты разбить на объекты - знакоспрайты, потом их отсортировать по Y, потом уже заполнять последовательно буфер.
    2) На каждую знакостроку - свой буфер спрайтов. В этом случае спрайты не нужно сортировать. А, последовательно перебирая их, разбивать на объекты-знакоспрайты, и записывать сразу в буфер нужной знакостроки. Недостаток метода 2) - в том, что нужно держать указатели на окончания всех 20 буферов и при записи в буфер соответственно корректировать эти указатели.

    Сейчас подлодка печатается по методу 2). Получилось 1000 тактов на заполнение буфера. Много. Правда я еще не особо оптимизировал. Лодка имеет в высоту - 12 пикселей. В ширину - 5 знакомест. К тому же еще не применяется клиппинг.

    На обработку мин уйдет больше времени, т.к. там еще нужно обсчитывать клиппинг.

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

    У кого какие мысли? Может еще есть какие способы, методы?

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

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

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

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

Ваши права

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