PDA

Просмотр полной версии : Горизонтальный Скроллинг



DenisGrachev
20.12.2011, 08:35
Всем привет!
В голове зреет новая игра для Speccy, и для неё здорово бы было сделать горизонтальный скроллинг уровня. Большого опыта у меня нет, написал всего 3 игры, так что ищу где что можно почитать. Буду признателен за любую информацию.

В идеале нужно скроллить окно 26х8 знакомест и уложиться в прерывание.За один шаг нужно двигать окно на 2 пикселя.
И чтобы под 48кб :)

Пока в голове 2 варианта: стандартными командами сдвига или каким-то хитрым образом заранее сдвинуть уровень и выводить фазы.

jerri
20.12.2011, 09:21
26*8 это не мелковато?

давай для начала определимся зачем тебе скролл в 1 фрейм на 2 пикселя

потом тебе надо ознакомится
1 с Sea Dragon (http://www.worldofspectrum.org/infoseekid.cgi?id=0025426) это 50 фпс попиксельно на почти экран

2 c Storm Lord (http://www.worldofspectrum.org/infoseekid.cgi?id=0004922)
здесь уже 17 фпс на 2 пикселя на 2/3 экрана

3 c Firefly (http://www.worldofspectrum.org/infoseekid.cgi?id=0001772) здесь уже 25 фпс на 2 пикселя тоже на 2/3

дальше - жанр игры и что именно скроллим

и это - ссылки давай на игры

null_device
20.12.2011, 09:22
Нужно знать больше "условий": с какой пиксельной линии (от верха экрана) и позиции по горизонтали будет располагаться "окно" скроллинга. А также направление скролла.

DenisGrachev
20.12.2011, 09:33
26*8 это не мелковато?

давай для начала определимся зачем тебе скролл в 1 фрейм на 2 пикселя
дальше - жанр игры и что именно скроллим

и это - ссылки давай на игры

Для той игры которую я планирую 26*8 вполне нормально, основной акцент на горизонтальном движении. Грубо говоря бежит герой слева направо. На самом деле герой стоит на месте и уровень двигается справо налево.

Нужен скролл на 2 пикселя, т.к. мне кажется на 1 пиксель будет медленно всё двигаться.Жанр игры - бегуший человек :)

Ссылки на игры? Собственно:
AlterEgo (http://zx.pk.ru/showthread.php?t=15977)
Join (http://zx.pk.ru/showthread.php?t=15562)



Нужно знать больше "условий": с какой пиксельной линии (от верха экрана) и позиции по горизонтали будет располагаться "окно" скроллинга. А также направление скролла.


Пиксельная линия? Допустим средняя часть экрана.Получается с 64 линии 64 линии :) По горизонтали окно выровнено по-центру, т.е если 26 знакомест, это 32-26=6\2=с 3-го знакоместа. Направление скролла справо налево.

Пока как-то так :)

jerri
20.12.2011, 09:37
DenisGrachev, с тремя предыдущими играми ознакомился?
какая из них ближе к твоей идее?

я имею ввиду - качество графики
примитивная как в sea dragon или firefly
или проработанная как в stormlord

это для организации скролла

DenisGrachev
20.12.2011, 10:16
DenisGrachev, с тремя предыдущими играми ознакомился?
какая из них ближе к твоей идее?

я имею ввиду - качество графики
примитивная как в sea dragon или firefly
или проработанная как в stormlord

это для организации скролла

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

newart
20.12.2011, 10:42
26*8 это не мелковато?

давай для начала определимся зачем тебе скролл в 1 фрейм на 2 пикселя

потом тебе надо ознакомится
1 с Sea Dragon это 50 фпс попиксельно на почти экран

2 c Storm Lord
здесь уже 17 фпс на 2 пикселя на 2/3 экрана

3 c Firefly здесь уже 25 фпс на 2 пикселя тоже на 2/3
А где Worms от Alco? Не 48, но попиксельно и во фрейм с прозвольным шагом.

jerri
20.12.2011, 12:52
newart, какие ограничения у вормсы?
количество объектов, размер экрана
размер задействованной памяти

GM BIT
20.12.2011, 18:48
Простой скроллинг окна 26х8 знакомест на 2pix хотя и можно впихнуть в прерывание (навскидку), но ничего более не останется.
Более реальней вывод сдвинутых спрайтов, но может не хватить памяти при учете проработанной графики.
Так что надо мудрить, что-то конкретное под твои условия (спрайты, остаток инта на игровой процесс, цикличность скролла, 48/128 и т.д)

DenisGrachev
21.12.2011, 09:25
Появились кое-какие мысли, надо пробовать в коде. Если что, надеюсь с оптимизацией подскажите :)

Lethargeek
21.12.2011, 22:18
эээхх... держите меня семеро, а не то... :v2_dizzy_snowball:

jerri
21.12.2011, 22:52
Lethargeek, расслабься здесь не нужен именно скролл
здесь нужен вывод тайл массива до 2х пикселей или до 4х пикселей

newart
22.12.2011, 02:02
Lethargeek, расслабься здесь не нужен именно скролл
здесь нужен вывод тайл массива до 2х пикселей или до 4х пикселей
См. Супер Марио от Gogin'a. Там правда 128к но и во весь экран.

jerri
22.12.2011, 09:56
newart, видел, короткая демка где все 128 к забиты раскранчеными спрайтами
а для скорпа например половину графики надо отключать. нормально работает только в турбо.
полной версии - нет и не будет
технически - неплохо
практически - бесполезно

---------- Post added at 09:56 ---------- Previous post was at 09:27 ----------

newart, ты случаем машинами не торгуешь?

-нам надо бюджетную ладу
-вот посмотрите замечательный Лексус в ВИП комплектации

newart
22.12.2011, 11:16
-вот посмотрите замечательный Лексус в ВИП комплектации
погоди! но может у топикстартера спрайты будут маленькие как в марио и их будет совсем немного?

---------- Post added at 11:16 ---------- Previous post was at 11:14 ----------


а для скорпа например половину графики надо отключать
У тебя возможно амнезия.
Там отключаемы только звездочки, точнее включаемы для турборежима (и нафик не нужны).

Игра делалась на скорпе...



практически - бесполезно
Сорцы открыты. Так что куда полезнее R-TYPE и еще 10000 игр.

jerri
22.12.2011, 11:33
погоди! но может у топикстартера спрайты будут маленькие как в марио и их будет совсем немного?

---------- Post added at 11:16 ---------- Previous post was at 11:14 ----------


У тебя возможно амнезия.
Там отключаемы только звездочки, точнее включаемы для турборежима (и нафик не нужны).

Игра делалась на скорпе...



Сорцы открыты. Так что куда полезнее R-TYPE и еще 10000 игр.

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

У Spider/WDG был скорп(кажется зеленый) с винтом - 216 тактов в строке и все мультиколоры работали на ура

На моем скорпе было 224 такта в строке в результате тормозило как на скорпе и скорповские мультики не работали.

Гогин игру не доделал - факт

3 От исходников проку мало, они написаны Гогином для Гогина
и без Гогина тут не разобраться.

newart
22.12.2011, 12:00
3 От исходников проку мало, они написаны Гогином для Гогина
и без Гогина тут не разобраться.
Ну, хвала Синклеру, Гогин жив и пребывает в добром здравии.

Я думаю что принцип движка он мог бы и на пальцах обьяснить.

jerri
22.12.2011, 12:10
newart, правда? а где он? вот я здесь. А Гогина я не вижу.
вот к кому может обратиться тот же Destr? или Andrew?

newart
22.12.2011, 12:27
Асечка: 324248127

jerri
22.12.2011, 12:35
newart, и ему интересен спектрум? правда правда?


Врагов десяток, плюс куча частиц, 2 игрока...
А Gogin, где его искать, на мыло он молчит.
Да и в Dizzy, там не совсем то о чем я говорю.

было же такое? :)

newart
22.12.2011, 13:11
newart, и ему интересен спектрум? правда правда?
Да. Он всегда с теплотой о нем вспоминает. У него даже реал есть.

alone
22.12.2011, 21:37
newart, какие ограничения у вормсы?
количество объектов, размер экрана
размер задействованной памяти
Там по 2 пикселя скролл. 4 копии карты = 4 странички. А поскольку всё это творится на одном экране, то объекты рисуются в погоне за лучом, в турбо-режиме вставляется спецпауза.

Карта 742x176 + небо.

Имхо неюзабельно. Я тогда забросил проект, ждал железа, где это можно адекватно сделать в цвете. На данный момент это уже можно сделать на:
а) Pentagon 2.666 (без палитры, эмулируется).
б) ZX Evo с неофициальной старой прошивкой от TS Labs (64 цвета, не эмулируется).
в) видеодевайсе с V9990 от Ронина (32768 цветов, не эмулируется).

jerri
23.12.2011, 17:34
DenisGrachev, вот как то так

сейчас грубо перерисовывается весь кусок 27*8
так сделано для возможности анимации бакграунда

скорость скролла от 2 до 16 пикселей

движок жрущий и жрет 67000 тактов
можно переписать как частный случай но ИМХО надо смотреть по обстоятельствам

jerri
23.12.2011, 17:39
анимацию бакграунда сделаю на днях :)

newart
23.12.2011, 19:38
Героя нет, музыки нет.

jerri
23.12.2011, 20:54
с героем и музыкой - 25 фпс

newart
23.12.2011, 21:31
с героем и музыкой - 25 фпс
Не движок, а фикция получается.

jerri
23.12.2011, 21:58
это не фикция -это макет

можно конечно сильно загрубить и сделать именно скроллом но это будет статический бакграунд

DenisGrachev
24.12.2011, 10:18
DenisGrachev, вот как то так

сейчас грубо перерисовывается весь кусок 27*8
так сделано для возможности анимации бакграунда

скорость скролла от 2 до 16 пикселей

движок жрущий и жрет 67000 тактов
можно переписать как частный случай но ИМХО надо смотреть по обстоятельствам
Отлично!
Как с лучом боролся? в буфер рисовал потом на экран или как по хитрому?
Есть ли какие ограничения по форме спрайтов и сколько на экране одновременно может находится?
Задник можно статическим или вообще без него.
У меня тоже уже два теста есть - балуюсь на работе в обед :)

jerri
24.12.2011, 17:13
после луча рисую

по спрайтам

вариантов 2
после прорисовки вот этого в следующем фрейме рисовать спрайты поверх, но нужно успеть до луча
или можно параллельно- нарисовал строку, нарисовал спрайты в ней

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

jerri
25.12.2011, 19:35
чтобы не думалось что я пустоту скроллить не умею

GM BIT
25.12.2011, 19:46
чтобы не думалось что я пустоту скроллить не умею

Это 1 инт? Пред идущий sna как и этот у меня не показывает плавности. В чём смотреть?
Что-то я тоже стал думать над этим, как бы это так и сяк. Если чего надумаю представлю sna

Titus
25.12.2011, 20:13
Это 1 инт? Пред идущий sna как и этот у меня не показывает плавности. В чём смотреть?
Что-то я тоже стал думать над этим, как бы это так и сяк. Если чего надумаю представлю sna
Нет, это два.

newart
25.12.2011, 22:47
Причем скролятся узоры которые можно заменить PUSH HL... и 8 фазами

jerri
26.12.2011, 09:24
Titus, здесь 66000 тактов
все в 50 фпс
4 фазы перерисовки бэкграунда

newart, узоры здесь не для этого
С плавной полноэкранной прокруткой на весь экран есть демка на ВОС

jerri
26.12.2011, 13:19
DenisGrachev, результаты тестов покажешь?

Titus
26.12.2011, 13:36
Titus, здесь 66000 тактов
все в 50 фпс
4 фазы перерисовки бэкграунда

Я не знаю, сколько там тактов, но работает оно на Пентагоне (Спектакулятор) в 25фпс.

GM BIT
26.12.2011, 13:48
Titus, здесь 66000 тактов
в режиме пентагон на EmuzWin идет тютя в тютю приблизительно 71500 в конце цикла программы

jerri
26.12.2011, 14:30
Titus, GM BIT, странно - по внутреннему счетчике анрила показывает именно 66000 с копейками тактов

а вот в режиме скорпиона да показывает гадости

Titus
26.12.2011, 15:28
Titus, GM BIT, странно - по внутреннему счетчике анрила показывает именно 66000 с копейками тактов

а вот в режиме скорпиона да показывает гадости
Запустил в EmuZWin в режиме Пентагона - действительно 50фпс.
Понятно, почему в Спектакуляторе 25. При запуске .sna, Спектакулятор почему-то переключается у меня в режим спектрума-48, а в нем тактов меньше.

jerri
26.12.2011, 15:58
ну поскольку я хочу на 25 фпс вывести со спрайтами и прочим
это будет некритично

newart
26.12.2011, 16:35
В Cobra крутой движок! 25 fps почти весь экран.

jerri
26.12.2011, 16:59
2/3 экрана
что в Gryzor
что в Firefly
что в ghouls n ghosts

но уж больно там суровые ограничения на качество картинки
от 3 до 8 тайлов на линию в уровне

DenisGrachev
26.12.2011, 19:45
DenisGrachev, результаты тестов покажешь?
Ага, скоро кину.Просто я уже делаю в контексте игры, не просто скролл. Получается тоже 25 FPS и только окно пока 24х8 знакомест...

NovaStorm
27.12.2011, 14:26
При запуске .sna, Спектакулятор почему-то переключается у меня в режим спектрума-48, а в нем тактов меньше.
Я тоже на это недавно напарывался, дело в размере снапа. Если сохранять в 128к, то спектакулятор открывает его пентагоном.

goodboy
27.12.2011, 15:49
вот нашёл несколько примеров скролла на весь экран 128к
http://www.joefish.co.uk/speccy/Joefish_50Hurts_Scroll_Demo.tap
http://www.joefish.co.uk/speccy/Joefish_50Hurts_Scroll_Demo_2.tap

Titus
27.12.2011, 16:27
вот нашёл несколько примеров скролла на весь экран 128к
http://www.joefish.co.uk/speccy/Joefish_50Hurts_Scroll_Demo.tap
http://www.joefish.co.uk/speccy/Joefish_50Hurts_Scroll_Demo_2.tap

Хороший пример. Как раз кодерам на заметку.

jerri
27.12.2011, 16:27
goodboy, Ну а чо :) Joefish кроссавчег

но есть 1 нюанс, на линию только 4 тайла

эту технологию применял Joffa в firefly
и Ghouls n Ghosts в принципе сделан по идентичной технологии
только на 48к спектруме :)

НО 25 фпс :)


кто там спрайтов хотел? :)

newart
27.12.2011, 20:34
Хороший пример. Как раз кодерам на заметку.
Очередная пустышка.
Добавиляешь героев - убавиляешь пару строк, добавляешь музыку, убавиляешь еще строку и т.п. В итоге будут теже 2/3 экрана.

Titus
27.12.2011, 23:34
Очередная пустышка.
Добавиляешь героев - убавиляешь пару строк, добавляешь музыку, убавиляешь еще строку и т.п. В итоге будут теже 2/3 экрана.
Но зато one frame)

Lethargeek
28.12.2011, 05:36
Очередная пустышка.
Добавиляешь героев - убавиляешь пару строк, добавляешь музыку, убавиляешь еще строку и т.п. В итоге будут теже 2/3 экрана.
оно даже на 2/3 жрет многовато (одинаково при любой заполненности экрана)
хотя можно, видимо, сделать что-нибудь попроще наподобие пантеры с атарика
может, даже стогерцовый плеер впихнуть получится))

jerri
28.12.2011, 09:37
Lethargeek, он и должен жрать всегда одинаково
это принцип такой этого движка

И там нельзя убрать пару строк - только целую треть

Lethargeek
28.12.2011, 14:30
ясен пень, что принцип
а под строчный тоже можно перепилить
но получится еще тормознее правда

jerri
28.12.2011, 16:35
Lethargeek, в ghouls n ghosts строчный :)
как раз 20 строк