PC-01 Lviv

It is currently 28 Mar 2024, 21:43

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 115 posts ]  Go to page Previous 1 2 3 4 5 68 Next
Author Message
 Post subject: Re: Re:
PostPosted: 04 Jun 2012, 14:01 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
А можно Вас попросить создать отдельную тему, где Вы попробовали бы рассказать об интересностях, которые встречали на "Львове"? К примеру, ни о Космосе, ни о Попрыгунчике я ничего подобного и вообразить не мог. :D
Тему создать можно, вот только наполнить её осмысленным образом (с примерами скриншотов, дизасма и т.п.) сложно.
По поводу масштабирования с фильтрацией - такой метод секретом не является, например, он используется для отрисовки экрана в MAME/DosBox/e.t.c.:
http://scale2x.sourceforge.net/algorithm.html
http://www.hiend3d.com/hq3x.html


Top
   
PostPosted: 04 Jun 2012, 14:09 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
там построчно, в игре надо скроллить сразу от 8 строк (и выше).
AGAIN: LXI H, 4040h

попробуй заменить на
AGAIN: LXI H, 4200h
Можно и так, но в контексте рассматриваемой игры нужен именно быстрый скролл. А скорость его перемещения так и так надо будет менять, чтобы самолетик мог летать быстрее-медленее, что и достигается изменением шага. Сейчас получается такая петрушка, что если лететь на минимальной скорости (шаг скролла равен единице), то быстродействие будет падать ниже плинтуса, ведь мы еще должны просчитывать поведение игровых объектов, особенно их столкновение. В общем, не на максимуме же пролетать все уровни! На это никакой реакции не хватит. :D
Quote:
Тему создать можно, вот только наполнить её осмысленным образом (с примерами скриншотов, дизасма и т.п.) сложно.
А почему? Времени нет или подходящего материала мало? А вообще начинать можно с малого. :wink:

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 04 Jun 2012, 16:36 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
Можно и так, но в контексте рассматриваемой игры нужен именно быстрый скролл. А скорость его перемещения так и так надо будет менять, чтобы самолетик мог летать быстрее-медленее, что и достигается изменением шага.
или задержкой, т.е. можно пропускать сколько то циклов скролла. в общем, надо экспериментировать.

я побаловался с черезстрочкой развёрткой - визуально вообще ничего не заметно
Image

цветовая палитра тоже нормально "расширяется"
Image
Quote:
Сейчас получается такая петрушка, что если лететь на минимальной скорости (шаг скролла равен единице), то быстродействие будет падать ниже плинтуса, ведь мы еще должны просчитывать поведение игровых объектов, особенно их столкновение.
между прочим, если спрайты черезстрочные, то коллизии вообще просчитывать не надо. скажем - фон по чётным линиям, самолётики и бомбы по нечётным.

P.S. имхо, минимальная скорость - сразу линий 4-8, посмотри на дракончика (клавиатурный тренажёр) - там всё так и реализовано.
Code:
	LXI	H, 4080h
	SPHL
	LXI	H, 4000h
......
	LXI	B, 000C0h
	DAD	B
	SPHL
	LXI	B, 0FF80h
	DAD	B
Code:
	LXI	H, 40C0h
	SPHL
	LXI	H, 4000h
...
	LXI	B, 00140h
	DAD	B
	SPHL
	LXI	B, 0FF40h
	DAD	B


Top
   
PostPosted: 04 Jun 2012, 16:48 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
я побаловался с черезстрочкой развёрткой - визуально вообще ничего не заметно
Да, прикольно. Никогда об этом не задумывался. :o
Quote:
между прочим, если спрайты черезстрочные, то коллизии вообще просчитывать не надо. скажем - фон по чётным линиям, самолётики и бомбы по нечётным.
Хм, смелая и неожиданная идея, но что-то я не могу уловить, как нам определить столкновение самолетика с корабликами и берегом? :?

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 04 Jun 2012, 17:28 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Я более внимательно пересмотрел ссылки на исходники, которые давал выше. Первые две ссылки - одно и то же, отличный листинг с анализом от Thomas Jentzsch. Между тем, в самом начале листинга расписан алгоритм работы River Raid, приведу его здесь:
Quote:
; *** R I V E R R A I D ***
; Copyright 1982 Activision
; Designer: Carol Shaw

; Analyzed, labeled and commented
; by Thomas Jentzsch (JTZ)
; Last Update: 13.08.2001 (v0.9)

; Section generation:
; The river is divided into sections which are generated by random. The random
; number generator can generate 57337 different sections. Each section is
; divided into 16 blocks. The last block is the bridge. For each other block a
; random Id is generated, which defines the shape of the river. The river is
; randomly generated with or without islands.
; Each block is 32 lines high and is divided into two parts. Those parts are
; neccessary for the bridge only, because it is smaller than a whole block.
;
; All objects are also randomly generated. There is one object in each block.
; First the game randomly selects if a fuel tank, an enemy object (ship, plane
; or helicopter) or a house should be generated. Then a starting x-position is
; defined and finally the direction (left/right) of the object is set.
; The ships and helicopters start patroling also randomly.
;
; Kernel:
; The main display is 160 lines tall. Below is the state display (score, fuel,
; lives and copyright).
; The kernel displays five or six of the section blocks. When a block leaves
; the display, it is replaced on the fly by a new generated one.
; It's basically a two line kernel, which is repeated twelve times. After that,
; there is code for eight more lines, where the block is iterated and all new
; parameter are set. (12 * 2 + 8 = 32!)
; The parameters for each block are:
; - a pointer to the current playfield pattern
; - a flag for a bright or dark green playfield
; - two pointers for the current object, the data is displayed interlaced,
; this gives in a single line resolution here
; - a color pointer for the object
; - x-positioning values for the object
; - some flags for the object (size, reflection...)
; All collisons are checked for each displayed block and only the hardware
; collision registers are used for that (no software calculations).

; Misc:
; - There are no score variables, the score is stored and changed directly in
; the display pointers!
; - The are no variables to store the x-positions of the objects, all
; calculations are done directly with the position values.
; (There aren't any BCD calculations in this code!)
; - All variables for the players are swapped, when the players change.
; - The game speeds aren't adjusted for PAL, the PAL game run's about 16% slower.
; (This seems to be true for most PAL conversions.)
; - ...
Надеюсь, кто-то сделает толковый перевод. :D

Напоследок еще одна новость. Кто мог предположить, что RR написала женщина? Однако это так. Ее зовут Кэрол Шоу, она даже упомянута в статье "15 самых важных женщин в истории техники". Вот ее фото в наши дни:

Image

А кто желает увидеть Кэрол в годы былые, тот может открыть статью о ней на сайте "Новая реальность". :wink: Кстати, там же о ней можно прочесть интересный отзыв одного из коллег мужеского пола:
Quote:
Кэрол Шоу я встретил, когда я работал в Activision. Её алгоритм создание русла реки в River Raid является одной из самых элегантных решений программирования, которые я когда-либо видел.
К чему это я пишу? К тому, что с RR надо соблюдать осторожность - ЖЕНСКАЯ ЛОГИКА ДЕТЕКТЕД! :lol:

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 04 Jun 2012, 20:47 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
Хм, смелая и неожиданная идея, но что-то я не могу уловить, как нам определить столкновение самолетика с корабликами и берегом? :?
Ну ты и впрям как маленький :-)
Я же тебе писал уже...:-)
вот тебе оринтеровочная матрица (спрайт) самолета "в голом виде"...
где 0=нет детели самолета, 1=часть (датель) самолета

00001000
00001000
00011100
00111110
01111111
00011000
00110110

вот тебе оринтеровочная матриц (спрайт) Карабля "в голом виде"
000000100000
000001100000
001111111000
111111111111
011111111110
001111111100

Берешь большую свободную Большую матрицу скажем в полэкрана или даже во весь экран (скажем 300х300 точек) зануляешь ее и проэцируешь в нее (согласно и координатам экрана) эти два объекта, сначала карабль (ну и берег )
Поточечно передаешь матрицу объекта в большую матрицу,
потом при проекции "тебя" (т.е. Самолета) в большую матрицу определяешь попадает ли "единица" самолета на "единицу" в Большой матрице (где уже корабль, берег) иль еще чего там, иль вообще все обекты которые есть на экране....
Ты конечно можешь сказать подобное "Да хрен быстродействия хватит"...
и будешь прав, но необязатьно брать Большую матрицу = всему экрану,
можно ведь проецировать около-твой-самолетную часть...
Так же можно и крылья сжимать при движении вправо влево, не меняя размера самого спрайта,
а только его внутренности "1" и "0".
Ну а раскраска на экран производится отдельно, и отдельными равными по размеру, цветными спрайтами
другой реализации подобного, мне лично в голову не приходит...


Top
   
PostPosted: 04 Jun 2012, 20:56 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Почитал я о Carol Shaw (http://tv-games.ru/wiki/Persons/CarolShaw.html) и вдруг мелькнула строка : «River Raid II (1988), Activision Publishing, Inc.»

???!!! а что был Ревер 2? 1988-го ? Кинь-те плиз, точную ссылку именно на этот ривер.. Нехочу нарываться на те что есть у меня...


Top
   
PostPosted: 04 Jun 2012, 22:18 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Ну ты и впрям как маленький :-)
Я же тебе писал уже...:-)
Вот поэтому я интересуюсь еще и мнением sadfsdfsdaf. Плюрализм. :wink:
Quote:
???!!! а что был Ревер 2? 1988-го ? Кинь-те плиз, точную ссылку именно на этот ривер.. Нехочу нарываться на те что есть у меня...
Вот видео игрового процесса. Те же яйца, только вид сбоку. Саму игру я не запускал.

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 05 Jun 2012, 00:16 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
Хм, смелая и неожиданная идея, но что-то я не могу уловить, как нам определить столкновение самолетика с корабликами и берегом? :?
первый уровень - "вхождение в квадрат" - большая часть циклов никто ни с кем сталкиваться не будет.
второй уровень - зависит от схемы кодирования спрайтов и экрана. в простейшем случае - по цвету пиксела в точке в которой будут рисовать спрайт (только нужна ли такая точность ?), причём для interlace эта схема упрощается.
плюс, поле не обязано иметь попиксельную точность, вполне хватило бы и шага в 4-8 точек (хотя рисовать можно "на полную").

дополнительно, можно согласовать фазы перемещения спрайтов...
кроме того, на видео, что ты показывал, полный скроллинг не особо то и нужен, подход от Аэрокобры вполне годится.

ещё спрайты можно хранить в виде кода, а не в виде картинки, т.е. процедура, которая выводит спрайт, процедура, которая считает коллизию..... (код развёрнут и оптимизирован).

вариант от sas9568635 тоже имеет право на существование (но только не при лобовой реализации).

да, я ещё особо текстур не увидел на том видео - без них полный скроллер не нужен.


Top
   
PostPosted: 05 Jun 2012, 01:27 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
Quote:
???!!! а что был Ревер 2? 1988-го ? Кинь-те плиз, точную ссылку именно на этот ривер.. Нехочу нарываться на те что есть у меня...
Вот видео игрового процесса. Те же яйца, только вид сбоку. Саму игру я не запускал.
Да я не видео хотел а ФАЙЛ самой игрушки для эмулятора Atari800Win PLus 4.0..
Чтобы не искать и не нарываться на 82-го года...
Эх.. видимо придется искать...


Top
   
PostPosted: 05 Jun 2012, 11:57 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
sadfsdfsdaf
А как же мигание спрайтов? Оно не есть гуд!


Top
   
PostPosted: 05 Jun 2012, 12:30 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Может я чего не так понимаю....
А что, если перечерчивать спрайт поверх нарисованного уже спрайта т.е. не затирая, не "обнуляя" (или как там правильно) передыдущий, то возможно моргание ?...


Top
   
PostPosted: 05 Jun 2012, 12:34 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Даже если затирать-"обнулять" пердыдущий спрайт - моргание обеспечено.


Top
   
PostPosted: 05 Jun 2012, 22:02 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
sadfsdfsdaf
А как же мигание спрайтов? Оно не есть гуд!
а откуда взяться морганию? сначала рисуем, потом стираем (а не наоборот - сначала стираем, потом рисуем). да, это несколько усложняет отрисовку, в противном случае - даже одна точка будет мигать, не то что спрайт.....
Code:
good:
x2 = x1 + dx: y2 = y1 + dy
pset(x2,y2),1: pset(x1,y1),0
x1 = x2: y1 = y2

bad:
pset(x1,y1),0
x1 = x1 + dx: y1 = y1 + dy
pset(x1,y1),1
Quote:
Даже если затирать-"обнулять" пердыдущий спрайт - моргание обеспечено.
в Дракончике его нет, там спрайт перетирают "чёрной закраиной", рисуют просто со смещением, как есть - старый спрайт стирается автоматически.


Top
   
PostPosted: 06 Jun 2012, 11:12 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
sadfsdfsdaf
Quote:
сначала рисуем, потом стираем
Ваш алгоритм не будет работать для перемещений, где dx, dy меньше размера спрайта. Так как мы будем затирать уже отрисованные участки. Разве что каждый раз менять порядок отрисовки спрайта, но это уже извращение.
Quote:
в Дракончике его нет, там спрайт перетирают "чёрной закраиной", рисуют просто со смещением, как есть - старый спрайт стирается автоматически.
Дракончик бегает по сплошному фону, и цвет фона входит в спрайт. А у нас все посложнее, так как мы как минимум должны уметь пролетать над горючим. Хотя, конечно, для простоты можно сделать что самолетик будет "порождать" вокруг себя синие артефакты (зато перерисовка над речкой будет простая), но это не наш метод! ;)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 115 posts ]  Go to page Previous 1 2 3 4 5 68 Next

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron
Powered by phpBB® Forum Software © phpBB Limited