Вход

Просмотр полной версии : скролл в Robocop/Batman



newart
30.09.2013, 22:20
Поковырял мельком. Нашел только вывод экрана.
Скролинга не нашел. Может там его и нету, а спрайты печатаются со сдвигом?

Кстати странно что 2-й робокоп под 128к, но не использует второй экран.

---------- Post added at 22:19 ---------- Previous post was at 21:42 ----------

Что, никто не лазил?

---------- Post added at 22:20 ---------- Previous post was at 22:19 ----------


Сообщение от jerri
ты stormlord изнутри смотрел?
ты смотрел как exolon и stormlord работают изнутри

для БЫСТРОГО скролла удобнее именно 16*16

посмотри

batman robocop 12.5 fps

В первых двух робокопах 16.5 fps.

jerri
01.10.2013, 12:11
Поковырял мельком. Нашел только вывод экрана.
Скролинга не нашел. Может там его и нету, а спрайты печатаются со сдвигом?

Кстати странно что 2-й робокоп под 128к, но не использует второй экран.
В первых двух робокопах 16.5 fps.

в робокопе для скроллинга используются автогенерящиеся тайлы.

т.е у тебя есть в карте сочетание элементов
01020203040201

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

0102
0202
0203
0304
0402
0201

всего в кэше тайлов робокопа висит не более 64 тайлов
при добавлении очередного столбца происходит опрос кэша и если такая пара существует то соответсвенно в кэш ничего не добавляется
если пары такой нет, то ищем свободное место (пару количество которых 0 на экране в данный момент)
при уходе очередного столбца с экрана соответственно все пары входивше в него получают -1

итак мы имеем 4 буфера по 2кб в котором присутствует плавное выскраливание тайла 02 следом за тайлом 01

и да :) скролл реализован перерисовыванием всего экрана
идентичные методы реализованы в
Stormlord, Zynaps и тп.

newart
01.10.2013, 13:29
jerri, что-то я вообще ничего не понял.

То есть в памяти нет буфера всего видимого экрана?

4 буфера это потому что 4 фазы скрола?

а 2кб это 64*32? (тайлы высотой 16 и шириной 8 + свободное знакоместо)

jerri
01.10.2013, 13:57
newart,

видеобуфер в 4 кб находится по адресу #f000
1 сначала отрисовывается фон в видеобуфере
2 накладываются спрайты
3 перебрасывается на экран

и да
4 буфера по 2 кб да это 4 фазы скролла
да тайлы размером 16 на 16 и их 64 штуки
нет свободного знакоместа нет, есть плавное перетекание тайла №1 в тайл №2

как то так
00000000 00000000
00000000 00000011
00000000 00001111
00000000 00111111

newart
01.10.2013, 15:54
т.е у тебя есть в карте сочетание элементов
01020203040201
Не понимаю как хватает такого малого количества.
Ведь даже в рамках одного экрана сочетаний явно больше получается...

Кстати, спрайт Робокопа случайно не составной?

jerri
01.10.2013, 16:51
newart, хватает, поверь.
фон там достаточно бедный
у них там даже элементов на фоновую анимацию хватает.

да спрайты персонажей составные
ну и соответственно зеркалятся все спрайты.