User Tag List

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

Тема: Sea Dragon

  1. #151

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

    По умолчанию

    Я уже думал, чтобы не бить на знакостроки - не получается с тросами. Их точно надо бить если не на знакостроки, то на части. А если на части, то - это получается почти что то же самое, что и на знакостроки. Так уж лучше всё под одну гребенку сразу делать да и всё. Т.е. - знакостроки.

    Если 1 фрейм - то однозначно надо перед лучом рисовать (у меня сейчас так). Это если бы 2 фрейма, тогда да - надо за лучом. А если 1 фрейм - то ПЕРЕД ЛУЧОМ и не надо мучиться высчитывать, пристраиваться, фору давать... Однозначно не догонит.

    ---------- Post added at 17:40 ---------- Previous post was at 17:07 ----------

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    а просто разницу ксорить
    это как? Если просто мина сдвигается влево - то понятно. А если еще и всплывает вверх? то что ксорить? какова разница в этом случае? А если мина еще и взрывается в конце?

    ---------- Post added at 17:43 ---------- Previous post was at 17:40 ----------

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    Кстати, Revision31 с медленной памятью на пике все-таки запинается
    видимо, придется отступить от оригинала. Посмотрим что будет с минами, там видно будет.

    ---------- Post added at 17:47 ---------- Previous post was at 17:43 ----------

    Цитата Сообщение от jerri Посмотреть сообщение
    один раз для рисования - смотреть где находится нижняя часть спрайта
    другой раз для стирания - смотреть где находится верхняя часть спрайта
    Я же предлагаю - давайте маской стирать при выводе, а? Будет экономится на вытаскивании адресов экрана и спрайта?


    Цитата Сообщение от jerri Посмотреть сообщение
    как решать проблему ухода спрайта за экран? координаты то от 0 до 255 и если с клиппингом справа все нормально, то слева надо чтото решать
    Эти клиппинги всегда уйму тактов жрут. Если б захотел, послал бы их куда подальше...
    Байта для координаты явно недостаточно. Значит надо 2 байта. Предлагаю 1-й байт - координата знакоместа, 2-й - смещение 0...7. Будем думать, пробовать.

    ---------- Post added at 17:53 ---------- Previous post was at 17:47 ----------

    Цитата Сообщение от jerri Посмотреть сообщение
    1. сколько фаз у взрыва?
    5 фаз. Меняются каждые 2 фрейма.
    Последний раз редактировалось ace210; 14.12.2009 в 17:59.

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

  3. #152

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

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение
    Я уже думал, чтобы не бить на знакостроки - не получается с тросами. Их точно надо бить если не на знакостроки, то на части. А если на части, то - это получается почти что то же самое, что и на знакостроки. Так уж лучше всё под одну гребенку сразу делать да и всё. Т.е. - знакостроки.
    Или можно тросы тупо забить в ландшафт и не страдать
    Если мина уничтожена, заменяешь тайл на пустой
    (в моем случае можно просто стереть в экране)

    Цитата Сообщение от ace210 Посмотреть сообщение
    Если 1 фрейм - то однозначно надо перед лучом рисовать (у меня сейчас так). Это если бы 2 фрейма, тогда да - надо за лучом. А если 1 фрейм - то ПЕРЕД ЛУЧОМ и не надо мучиться высчитывать, пристраиваться, фору давать... Однозначно не догонит.
    Только если успеешь после фона еще и спрайты отрисовать
    которые, даже отсортированные, могут скопиться наверху
    То есть луч до ВЕРХНИХ строк не должен успеть дойти
    Но даже 4-я знаколиния ~ 22000 тактов с начала кадра

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

    Цитата Сообщение от ace210 Посмотреть сообщение
    видимо, придется отступить от оригинала. Посмотрим что будет с минами, там видно будет.
    Лучше подожди, пока я добью свой скроллер до вменяемого исходника
    Или отступать придется далековато

    Цитата Сообщение от ace210 Посмотреть сообщение
    Эти клиппинги всегда уйму тактов жрут. Если б захотел, послал бы их куда подальше...
    Байта для координаты явно недостаточно. Значит надо 2 байта. Предлагаю 1-й байт - координата знакоместа, 2-й - смещение 0...7. Будем думать, пробовать.
    Что там сложного - печатай столбиками, начинай не с первого, вот и все
    Вместо смещения брать циклически следующий адрес сдвинутого спрайта
    (или процедуры, которая рисует нужную фазу)
    Прихожу без разрешения, сею смерть и разрушение...

  4. #153

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение
    что-то ничего не понял. Ты словами на паЛЦАХ разъясни, что придумал.
    вот картинка
    перед тобой проскроленныый спрайт прямоугольника 8*16
    в том самом виде в каком он будет хранится в памяти

    т.е переход к следующему ряду = inc h
    переход по горизонтали - inc l

    что дает такой способ хранения - нет необходимости в спец процедурах для клипирования просто берешь и выводишь тупо задавая ширину

    далее переход между строками экрана
    в стеке - таблица адресов и мы оттуда достаем по 1 и корректируем

    так проще?
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	sshot000000.png 
Просмотров:	299 
Размер:	3.3 Кб 
ID:	14823  
    С уважением,
    Jerri / Red Triangle.

  5. #154

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я вот тут про JITScroll подумал

    Lethargeek, а как ты собирался вообще собирался код генерить для компактного выполнения?

    просто как я смотрю это же должен быть чистый код. не?
    чтото вроде

    ld e,l
    rl (hl)
    ldd
    ld e,l
    rl (hl)
    ldd
    dec l
    dec l
    dec l
    ld e,l
    rl (hl)
    ldd
    ret
    и в начало добавлять новые элементы?
    или я чтото не так понял?


    хотя конечно если точно знать - а мы знаем
    то можно упростить до

    rl (hl)
    ldd
    rl (hl)
    ldd
    dec l
    dec l
    dec l
    ld e,l
    rl (hl)
    ldd
    ret

    а ld e,l добавлять перед очередным большим блоком
    а карту паковать с управляющими кодами
    Последний раз редактировалось jerri; 17.12.2009 в 13:24.
    С уважением,
    Jerri / Red Triangle.

  6. #155

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

    По умолчанию

    Да все мы знаем конечно
    Там на скроллер каждой строки должен быть дескриптор
    Типо адреса начала-конца, отступ справа, левый столбец

    А потом каждый восьмой кадр отступ либо увеличить
    либо закрыть (записать нужный кусок для пропуска)
    и дописать в начало еще кусок любым способом

    Нужный кусок можно по-разному выбирать
    можно отдельным потоком, можно прямо по номеру тайла
    (если нужно, возможны одинаковые с виду с разными номерами)

    Потом смотрим, где последний столбец и кусочками режем хвост
    (по концевому байту однозначно видно, когда обрезку прекратить)

    Также можно сразу же корректировать оценку быстродействия
    (для вставки задержек, если за лучом рисовать)

    Сам код будет несколько другой, подогнал еще под ландшафт
    Прихожу без разрешения, сею смерть и разрушение...

  7. #156

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну есть пара идей относительно генерения
    правда декрунчер получается слишком психаделический
    С уважением,
    Jerri / Red Triangle.

  8. #157

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

    По умолчанию

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

  9. #158

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
    ;JIT алгоритм
    ;кстати что значит JIT?
    
    итак изначально имеем рабочую область 160 на 256
    т.е 20 тайловых строк
    
    итак производим генерацию кода для обработки тайловой строки
    
    для начала определяемся как все будет
    
    итак
    буфер под код 256 байтов
    при максимальной загрузке
    вида
    	ld e,l
    	rl (hl)
    	ldd
    5*32 - 160 байтов
    
    буфер должен выглядеть как то так
    
    	rl (hl)
    	ldd
    	rl (hl)
    	ldd
    	dec l
    	dec l
    	dec l
    	dec l
    	ld e,l
    	rl (hl)
    	ldd
    	ret
    
    l_init
    ;h-старший байт адреса
    звполняем таблицу
    	ld 	l,-1
    ;инициируем таблицу переходов
    	ld	b,32
    	ld	(hl),-27
    	dec	l
    	djnz	$-3
    ;создаем ссылку на текущий байт в таблице переходов
    	ld	(hl),-1
    	dec	l
    ;закручиваем скроллер в кольцо
    	ld	(hl),1
    	dec	l
    	ld	(hl),h
    	dec	l
    	ld	(hl),#c3
    	dec	l
    	ld	(hl),#c9
    	ld	a,l
    	ld	l,0
    ;инициируем трамплин
    	ld	(hl),a
    	ret
    l_proc
    ;обработчик
    	ld	l,0
    	ld	l,(hl)
    	ld	(jmp_item),hl
    	ex	de,hl
    	ld	a,l
    	call	$+3
    	call	$+3
    	call	$+3
    	call	$
    jmp_item	equ	$-2
    	ld	l,a
    	ret
    l_gen
    ;генератор
    d-старший байт
    a-статусный байт
    ;статусы
    0-пустота (камень или вода)
    1-начало линии
    2-середина линии
    3-конец линии
    
    	add	a,a
    	add	a,jmp_gen
    	ld	l,a
    	adc	a,jmp_gen/256
    	sub	l	
    	ld	h,a
    	ld	a,(hl)
    	inc	hl
    	ld	h,(hl)
    	ld	l,a
    	jp	(hl)
    jmp_gen	dw	jit_0,jit_1,jit_2,jit_3
    	
    jit_0
    	ex	de,hl
    	ld	l,-32
    	ld	a,(hl)
    	dec	a
    	or	#e0
    	ld	c,a
    	ld	(hl),a
    	ld	b,h
    	ld	l,0
    	ld	l,(hl)
    	ld	a,l
    	dec	a
    	call	z,corr_jitb
    	dec	l
    	ld	(hl),#2d 	dec	l	
    	ld	a,l
    	ld	(bc),a	
    	ld	l,0
    	ld	(hl),a
    	ret	
    corr_jitb
    	ld	a,l
    	ld	l,-33
    	ld	(hl),a
    	dec	l
    	ld	(hl),h
    	dec	l	
    	ld	(hl),#c3
    	ret
    jit_1
    	ex	de,hl
    	ld	l,-32
    	ld	a,(hl)
    	dec	a
    	or	#e0
    	ld	c,a
    	ld	(hl),a
    	ld	b,h
    	ld	l,0
    	ld	l,(hl)
    	dec	l
    	call	z,corr_jitb
    	ld	(hl),#5d 	ld e,l
    	ld	de,#cb16  rl (hl)
    	call	place_word
    	ld	de,#eda8 ldd
    	call	place_word
    	ld	a,l
    	ld	(bc),a	
    	ld	l,0
    	ld	(hl),a
    	ret	
    place_word
    	ld	a,l
    	cp	3
    	call	c,corr_jitb
    	dec	l
    	ld	(hl),e
    	dec	l
    	ld	(hl),d
    	ret
    както так
    это предварительные прикидки - позже наверное напишу остальное да и багу выловить надо :)
    С уважением,
    Jerri / Red Triangle.

  10. #159

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

    По умолчанию

    Just In Time? т.е. "реального времени"

    ---------- Post added at 17:50 ---------- Previous post was at 17:48 ----------

    От ldd Lethargeek в свое время отказался, т.к. получается дольше с ней (как ни странно) и сложнее.

  11. #160

    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение
    Just In Time? т.е. "реального времени"
    лучше перевести - "по ходу дела", т.е. как только понадобилось

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

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

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

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

Ваши права

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