Nicron #98
23 июля 1998

Программирование - о выводе спрайтов. продолжение и ответы на вопросы

<b>Программирование</b> - о выводе спрайтов. продолжение и ответы на вопросы
	  Hе дай мозгам засохнуть -
			  Спрайт !


(c) Spencer Winset/Diamond group


    Я получил первое письмо, оно от известного Московского
free-кодера GPV-SOFT (500:95/550.5, тел:944-04-48 Георгий):

GPV> Hi, в своем письме ты сказал много, но не оговорил условия.

Оговорив все условия, я не получил бы ни одного письма. Тем  бо-
лее, я хотел, чтобы ZX-люд немного  потренировался  в  мышлении,
поэтому и не поставил ограничение на полет мысли (хотя ты прав).

GPV> Я так  понял - тебе нужен вывод спрайта по XOR.

Вот и результат, ты вдумался в мои загогулины (ты опять прав).

GPV> А почему ты не сказал, сколько у тебя есть  памяти,
GPV> какой размер спрайта, используется ли второй экран и т.д.

Ответ я дал одиннадцатью строками выше.  А по существу:  памяти
мало, спрайты: ширина 2 или 3 симв. поз., высота около 16 линий,
второй экран не используется и свободны все регистры,'-ные тоже.
Кстати, память позволяет не DJNZ'ить по кол-ву линий  в спрайте,
а расписать все подряд (хотя это в 15 раз больше байт займет).

GPV> Если памяти много, то самый быстрый способ вывода по XOR:

     LD A,(HL)
     XOR #NN		25 тактов на 1 байт
     LD (HL),A
     INC L

Вот именно на этом месте пока ты заработал бутылку пива.  А  по
тактам, тута получается побольше 25, но нe нaмного,  впрочем  к
моим процедурам это тоже относится, а именно переход  к  следую-
щей линии (по памяти: простое сложение регистровых пар, а по эк-
рану: интернациональная процедура DOWN HL).

GPV> Для каждого спрайта своя процедура. Эти процедуры можно
GPV> оптимизировать  с  учетом особенностей данных спрайтов.
GPV> Все зависит от конкретных условий !!!
GPV> С уважением, GPV-SOFT (500:95/550.5, тел:944-04-48 Георгий)

	Золотые слова! Огромное спасибо за письмо и советы.

			*	*	*

   Теперь я постараюсь рассказать для чего, собственно, это все
надо, и дам больше технической информации заинтересовавшимся.

   Полтора года назад наша Diamond group в составе 8 человек ре-
шила всерьез заняться производством игрушки  под названием  "X".
Поскольку собственные идеи отсутствовали, решено было перевести
игру "WORMS" на платформу ZX.  Мы получили благословление KSA и
кодовую  поддержку  FUX'а   (параболическая  траектория  полета
снаряда). Hе прошло и трех месяцев, как супер-графиста HUNTER'а
забрали в армию.  Далее игра пошла криво, и мы кинулись  на лег-
кий хлеб - демостроение. За 1997 год около 12 демок, лучшего за-
нятия для тренировки в кодах не найти.  За это время накопилось
много собственных идей, копия игры "WORMS" переросла  в сольный
проект. В начале 1998 года проект был разморожен. Многие  проце-
дуры были опримизированны почти в два раза,  и  это  не  предел.
Графист придет из армии спустя 3 месяца после FunTop98  (там бу-
дут его работы), а пока я (Spencer) подтягиваю процедуры к фини-
шной прямой.
26.05.98 на Совете Сисопов в Измайловском парке  наш органайзер
Re-Animator провел голосование. Из 25 предложенных названий  иг-
рового проекта было выбрано:  "FOUR RASCALS" /Четверо Сволочей/,
потому что в каждой команде по четыре солдата; дальнейшую  игро-
вую информацию давать пока рано (могут сглазить).

   Техническое инфо по спрайтам.

Они накладываются (по XOR) в память на рельеф, который  тоже  в
спрайтовой форме (все байты расположены последовательно).Почему
по XOR, а не по маске? Во-первых, по тактам и по памяти  в  два
раза меньше, во-вторых, за рельефом  чернота  (как  в Тank War),
маски и видать не будет. А почему тогда не прямой загрузкой:

						POP DE
						LD (HL),E
 			32/2=16 тактов на байт	INC L
			(это не предел;		LD (HL),D
			 можно и...)		INC L

Hо прямой загрузкой "верхний" спрайт забьет предыдушие,если они
расположены на одном месте рельефа, да и рельеф не прямая линия,
будет затерт. Интересно эту проблему решил VDV CORP в своей  иг-
ре ICE CLIMBER: большие спрайты печатаются и затирают  друг дру-
га, но все спрайты в одно прерывание печатаются в одной (любой!)
последовательности, а в другое прерывание в строго обратной  по-
следовательностьи. Посмотрите сами в выше (у)помянутой игре, вы-
брав два игрока и "наступив" одним на другого. А так -  мерцают
немного.
  А по XOR'у можно использовать процедуру второй раз,  и спрайт
исчезнет со старого положения, и случайно испорченый рельеф вос-
становится. Hо если кто-то располагает более современными знани-
ями в этой области, то милости прошу - пишите,ведь игру я делаю
не для себя, а для HАШЕГО Спекки.  Пока.


				   Spencer Winset/Diamond group
				   500:95/550.8 Evgene Goljakov

	
	
	




Другие статьи номера:

Вступление - содержание номера.

BBS - список станций BBS ZXNet.

Программирование - о выводе спрайтов. продолжение и ответы на вопросы

Рассказ - "Доктор Шахов" (окончание).

Реклама - реклама и объявления.

Обратная связь - контакты редакции.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Rectime - парочка строк о рекламе...
Music - предсказание участников музыкального конкурса на Chaos Construction 2004.
Новости - Hippiman/Conscience выпустил новогоднюю игру Dizzy Rescues Santa, Польский культуролог Пётр Марецки прислал большой опросник для будущей книги, Сергей Смирнов (Gogin) возродил свой проект по портированию игры Super Mario для Спектрума.
Оттяг - EXКлюЗивные GoнЫ от IronmAN'а.
free humor - анекдот недели от freeman^freeart.

В этот день...   21 мая