Andrew771, давай посмотрим
удаление спрайтов
рисование спрайтов
логика обьектов
звуки
а так да немного
Andrew771, давай посмотрим
удаление спрайтов
рисование спрайтов
логика обьектов
звуки
а так да немного
С уважением,
Jerri / Red Triangle.
Тут маски еще не хватает, я так понимаю поле будет же не пустым, а танк будет елозить по траве/грунту/трясине, а оно тоже фон имеет...
Andrew771, человек же делает спрайты героя и врагов не 8*8, а 16*16 минимум, если добавится маска, то постоянная ротация данных спрайта/маски перед выводом и так 16 объектов подряд, а так же восстановление фона под спрайтом - уже во фрейм не вместится, да и мерцать будет убого. Надо изначально движок делать дельный, а не потом искать пути оптимизации скорости, когда уже будет сложно все переделывать. Я вон тоже сначала думал для экономии памяти в 128м спеке юзать универсальную п/п вывода спрайта, с постоянной ротацией, хоть она и развернута, но все же жрет не мало тактов. Поэтому оценив память и быстродействие, все же остановился на методе хранения сдвинутых спрайтов в памяти и быстрого вывода их на экран.
А мне даже интересно увидеть что получится Возможно, всё в итоге будет совсем иначе, чем в начале... у меня похожая ситуация поначалу была. Сначала сделал, заработало. Потом занимался оптимизацией, идеи приходят бывает не сразу. Зато добился приличных скоростей и гармоничного соотношения скорость/память. Потом через полгода посмотрел на код... WTF?
возможно что-то пригодится из исходников Мастера ftp://ftp.worldofspectrum.org/pub/si...SourceCode.zip
goodboy, если только звуки
С уважением,
Jerri / Red Triangle.
Скорее всего, из-за ограничений встроенной видеокатры ZX SPECTRUM, придется отказаться от объектов над и под танком (сетки, вода и т.п). Чтобы не было клешинга атрибутов танки будут ездить по черному фону каждый в своем периметре (в квадрате 3х3 клетки). Спрайты придется сделать такого же размера. Размеры танков до 16х16 точек. Одна пустая клетка в спрайте при приближении танка вплотную к периметру будет затирать след от танка сзади. Периметр сдвигается сразу на одну клетку. Внутри периметра перемещение на 1 точку. Между собой танки или лабиринт игрового поля не должны пересекаться, то есть каждый танк внутри своего периметра 3х3 клетки. Они даже могут подъехать вплотную друг к другу, насколько позволяют периметры. Тогда все будет нормально с цветами без клэшинга атрибутов. Фон планируется из спрайтов размером с клетку (8х8). На карте уровня каждому спрайту будет соответствовать одно или двухбайтный номер.
Пока отлажен выезд танков влево и вправо за границы окна. Также структурированы процедуры печати спрайта и расчета слудующего положения. Для оценки времени на изображение четырех танков закрасил BORDER синим цветом.
На первом уровне FUTURE TANK планируется как обычный вражеский танк мелкгого размера, но желтого цвета. Он был сделан из обычного танка путем захвата и перепрограммирования. Далее, по мере изучения вражеских технологий и собственных разработок, возможен апгрейд трофейного танка...
Последний раз редактировалось zx-kit; 08.08.2013 в 16:47.
"L-256"
С развернутыми спрайтами можно и фон сделать - скорость упадет незначительно, а красота и играбельность в разы увеличится!
В процедуре вывода изменится только:
Было:
Стало:Код:ld a,(de) or (hl) inc hl ld (de),a inc e
Что правда фон под спрайтом придется сохранять в буфер, а потом восстанавливать, вместо затирания спрайта на экране, как сейчас.Код:ld a,(de) and (hl) inc hl or (hl) inc hl ld (de),a inc e
Штук 8-10 объектов можно свободно вместить во фрейм.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)