User Tag List

Страница 15 из 59 ПерваяПервая ... 111213141516171819 ... ПоследняяПоследняя
Показано с 141 по 150 из 589

Тема: Sea Dragon

  1. #141

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

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение

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

    У кого какие мысли? Может еще есть какие способы, методы?
    Код:
    pop hl,de,ix
    ld sp,hl
    ex de,hl
    dup 3
    pop bc
    ld a,(hl)
    xor c
    ld (hl),a
    inc h
    ld a,(hl)
    xor b
    ld (hl),a
    inc h
    edup
    pop bc
    ld a,(hl)
    xor c
    ld (hl),a
    inc h
    ld a,(hl)
    xor b
    ld (hl),a
    ld sp,ix
    ret
    
    эта процедура должна использоваться для отрисовки левого и правого края обьекта  (мины?) 
    для отрисовки середины можно использовать такую же, но просто с копированием  
    
    pop hl,de,ix
    ld sp,hl
    ex de,hl
    dup 3
    pop bc
    ld (hl),c
    inc h
    ld (hl),b
    inc h
    edup
    pop bc
    ld (hl),c
    inc h
    ld (hl),b
    ld sp,ix
    ret
    
    естественно перед тем как так рисовать 
    надо создать таблицу вида
    #8000 адрес_обработчика, адрес_спрайта, адрес_на экране, #8008
    #8008 адрес_обработчика, адрес_спрайта, адрес_на экране, #8010
    #8010 конец обработки строки
    вот это примерный алгоритм
    как создавать такую таблицу и как к ней обращаться - об этом чуть позже
    С уважением,
    Jerri / Red Triangle.

  2. #142

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

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение
    Думаю мины можно не стирать, а печатать с маской поверх старого изображения, затирая маской соседние 2 пикселя справа и снизу
    Да не "маской затирать", а просто разницу ксорить - примерно как у jerri
    Только зачем там 4 раза pop? С двойными строками нужно только 4 байта
    Разве что мины по-другому нарисовать (что все равно не стоит возни со стеком)
    Прихожу без разрешения, сею смерть и разрушение...

  3. #143

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

    По умолчанию

    ну эт на случай если хочется сделать красиво
    кстати вопрос такой - по вертикали мины будут всплывать со скоростью 2 пикселя так?
    и пули из пушек тоже? а сталактиты?
    а в оригинале как?
    не будет ли нехватать скорости о сравнению с оригиналом
    Последний раз редактировалось jerri; 11.12.2009 в 16:52.
    С уважением,
    Jerri / Red Triangle.

  4. #144

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

    По умолчанию

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

    Цитата Сообщение от jerri Посмотреть сообщение
    не будет ли нехватать скорости о сравнению с оригиналом
    Ну, пик я уже до 25000 ужал, так что запасной вариант у вас всяко будет
    (даже с запасом на моргалки и прочие извращения)
    Прихожу без разрешения, сею смерть и разрушение...

  5. #145

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

    По умолчанию

    В оригинале есть 4 уровня сложности:
    1) Yeoman - 2,5 фрейма
    2) Ensign - 2 фрейма
    3) Captain - 1,5 фрейма
    4) Admiral - 1 фрейм

    Примечательно, что тайминги у платформы Atari совпадают с Spectrum. Т.е. если расположить рядом 2 эмулятора и запустить одновременно, то ландшафты скроллируются синхронно!

    ---------- Post added at 18:52 ---------- Previous post was at 18:34 ----------

    Мины всплываю в 2 раза быстрее чем лодка. Т.е. получается за 1 фрейм - 2 пикселя.
    Пули еще быстрее летят. Там да, что-то типа прерывистого луча из пуль получается.
    Сталактиты - то же самое как мины.

    Скорости нормально. В чем проблема-то может возникнуть? Как надо будет, так и оптимизируем.

    ---------- Post added at 18:54 ---------- Previous post was at 18:52 ----------

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    Подозреваю даже, что оригинал юзает текстовый режим для фона
    Я совсем не знаю платформу Atari, но слышал, что там есть аппаратная поддержка спрайтов.

  6. #146

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

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение
    В оригинале есть 4 уровня сложности:
    1) Yeoman - 2,5 фрейма
    2) Ensign - 2 фрейма
    3) Captain - 1,5 фрейма
    4) Admiral - 1 фрейм
    Мне показалось 1)=2) и 3)=4) только мины злее всплывают
    А фреймы умножь на два из-за низкого разрешения
    наш реальный пиксель в два раза меньше

    Цитата Сообщение от ace210 Посмотреть сообщение
    Примечательно, что тайминги у платформы Atari совпадают с Spectrum. Т.е. если расположить рядом 2 эмулятора и запустить одновременно, то ландшафты скроллируются синхронно!
    Они у всех компов, рассчитанных на PAL, совпадают
    На спеке только плавней получится

    Цитата Сообщение от ace210 Посмотреть сообщение
    Я совсем не знаю платформу Atari, но слышал, что там есть аппаратная поддержка спрайтов.
    Спрайты убогие, зато есть настоящий строчный видеопроцессор
    Можно каждую строку ставить новый аппаратный режим
    в том числе текстовые с графическими мешать
    Прихожу без разрешения, сею смерть и разрушение...

  7. #147

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

    Arrow JIT snake scroller test 1

    Набил тупую проверку нового скроллера для зацикленного экрана
    только прокрутка без подготовки, зато без оптимизации смены строк
    и без блокировки обработчика MASK-INT (емнип 1720 тактов)

    Здесь ровно 384 вертикальных "тайла" (против 204 на пиковом)
    Хавает 44922+ без задержек и 48063 c задержками юлы-48
    Соответственно (за минусом MASK-INT) на пиковом получается
    примерно 23300 без задержек и около 25000 с задержками
    (зависит от строки, с которой рисование начинается)

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

  8. #148

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

    По умолчанию

    мой способ не пойдет с данной технологией
    вопрос такой - хватит ли скорости для отрисовки и удаления полного спрайта?
    т.е 16*3 или 12*5

    т.е не бить его на куски
    а перед скроллом местности убрать все что есть

    прорисовать 2 строки

    и после прорисовки нарисовать все спрайты

    ---------- Post added at 13:54 ---------- Previous post was at 12:42 ----------

    Код:
    //организация спрайтов
    //адреса даны примерно
    
    sp_line1	equ	#6000
    
    
    //как организовано?
    //сначала в кучку друг за другом все первые линии обьектов
    //потом все следующие линии обьектов в следующем параграфе
    //и тд
    sub_beg	equ	#00	//8*5 =#38
    mine_beg	equ	#38	//8*3=#18
    gunl_beg	equ	#50	//8*3=#18
    gunr_beg	equ	#68	//8*3=#18
    stal_beg	equ	#80	//8*3=#18
    
    
    
    //здесь начинаем рисовать строку спрайтов
    beg_line
    
    //вот здесь можно сделать проверку на необходимость отрисовки
    //чтото вроде
    	ld	(sprdraw_sp),sp
    	ld	sp,(sprites)
    	ret
    end_line
    	ld	(sprites),sp
    	ld	sp,(sprdraw_sp)
    	ret
    sprites	dw	0
    
    //отрисовка обьекта шириной 1
    draw_sp1
    	pop hl 		//адрес Y
    	pop de		//адрес на экране
    	pop bc		//B высота С координата X
    	ld (store_sp1),sp
    	ld sp,hl
    loop_sp1
    	pop hl
    	ld a,c
    	add a,l
    	ld l,a
    
    	ld a,(de)
    	xor (hl)
    	ld (hl),a
    
    	pop hl
    	ld a,c
    	add a,l
    	ld l,a
    
    	ld a,(de)
    	xor (hl)
    	ld (hl),a
    
    	inc d
    	djnz loop_sp1
    	ld sp,0
    store_sp1	equ $-2
    	ret
    //отрисовка обьекта шириной 2
    draw_sp2
    	pop hl 		//адрес Y
    	pop de		//адрес на экране
    	pop bc		//B высота С координата X
    	ld (store_sp2),sp
    	ld sp,hl
    loop_sp2
    	pop hl
    	ld a,c
    	add a,l
    	ld l,a
    
    	ld a,(de)
    	xor (hl)
    	ld (hl),a
    
    	inc l
    
    	ld a,(de)
    	xor (hl)
    	ld (hl),a
    
    	pop hl
    	ld a,c
    	add a,l
    	ld l,a
    
    	ld a,(de)
    	xor (hl)
    	ld (hl),a
    
    	dec l
    
    	ld a,(de)
    	xor (hl)
    	ld (hl),a
    	
    	inc d
    	djnz loop_sp2
    	ld sp,0
    store_sз2	equ $-2
    	ret
    //отрисовка обьекта шириной 2
    draw_sp3
    	pop hl 		//адрес Y
    	pop de		//адрес на экране
    	pop bc		//B высота С координата X
    	ld (store_sp3),sp
    	ld sp,hl
    loop_sp3
    	pop hl
    	ld a,c
    	add a,l
    	ld l,a
    	dup 2
    	ld a,(de)
    	xor (hl)
    	ld (hl),a
    
    	inc l
    	edup
    
    	ld a,(de)
    	xor (hl)
    	ld (hl),a
    
    	pop hl
    	ld a,c
    	add a,l
    	ld l,a
    
    	dup 2
    	ld a,(de)
    	xor (hl)
    	ld (hl),a
    
    	dec l
    	edup
    
    	ld a,(de)
    	xor (hl)
    	ld (hl),a
    
    	inc d
    	djnz loop_sp3
    	ld sp,0
    store_sз2	equ $-2
    	ret
    единственное - необходимо 2 раза сканировать спрайты выводимые на экран
    один раз для рисования - смотреть где находится нижняя часть спрайта
    другой раз для стирания - смотреть где находится верхняя часть спрайта

    но здесь нужно уже иметь на руках структуры объектов - как-то так
    кстати
    1. сколько фаз у взрыва?
    2. как решать проблему ухода спрайта за экран? координаты то от 0 до 255 и если с клиппингом справа все нормально, то слева надо чтото решать
    Последний раз редактировалось jerri; 14.12.2009 в 13:04.
    С уважением,
    Jerri / Red Triangle.

  9. #149

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

    По умолчанию

    что-то ничего не понял. Ты словами на паЛЦАХ разъясни, что придумал.

  10. #150

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

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    мой способ не пойдет с данной технологией
    вопрос такой - хватит ли скорости для отрисовки и удаления полного спрайта?
    т.е 16*3 или 12*5
    Можно тупо дать лучу нужную фору, те же 16 строчек (~3600 тактов)
    Хотя хрен его знает, может даже перед лучом успеем, он и не догонит
    (если с прошлого фрейма все заранее подготовить для быстрой печати)
    Прихожу без разрешения, сею смерть и разрушение...

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

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

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

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

Ваши права

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