Nicron
#98
23 июля 1998 |
|
Программирование - о выводе спрайтов. продолжение и ответы на вопросы
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. |
Программирование - о выводе спрайтов. продолжение и ответы на вопросы |
Рассказ - "Доктор Шахов" (окончание). |
Реклама - реклама и объявления. |
Обратная связь - контакты редакции. |
Похожие статьи:
В этот день... 21 ноября