Как написать игру для ZX Spectrum 1994 г.

Генератор игр GAMES DESIGNER - перемещения противника. Уровни сложности. Изменение графики. Дополнительные возможности.


Перемещения противника

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

При выборе пункта MOVEMENT на экране появится картинка, показанная на рис. 10.5. Можно задать до восьми возможных траекторий движения противника, пронумерованных от 0 до 7 (NO - номер траектории). Для каждой из них вводится:

PATTERN - ряд чисел, кодирующих направления (диаграмма в правом верхнем углу экрана подскажет вам, какому направлению какое число соответствует: 0 -вверх, 1 - вверх и вправо, 2 - вправо и т. д.)

NEXT - номер (N0) последовательности для продолжения движения. После прохождения по одной траектории, противники начинают

двигаться по траектории, номер которой задается в этом пункте. Для продолжения движения можно указывать и ту траекторию, которую вы редактируете.

Для начала редактирования нажмите цифровую клавишу, соответствующую номеру изменяемой траектории (0...7). В правом нижнем углу экрана появится изображение траектории, напоминающее след мела на школьной доске, а в начале выбранной строки замигает курсор. Заменяя прежние числа новыми, вы обнаружите, что и траектория начнет меняться. Курсор перемещается по редактируемой строке клавишами 8 или 9. После того, как вы задали нужную траекторию, нажмите Enter. Теперь вы можете обработать аналогичным образом следующую последовательность, либо, еще раз нажав Enter, выйти в главное меню.

Уровни сложности

Это, пожалуй, самый ответственный этап формирования игры, позволяющий вносить в нее наибольшее разнообразие.

Название режима ATTACK WAVES (волны атаки) говорит само за себя. Все, что вы в нем формируете, касается атакующей стороны, то есть вашего противника. Если вы любите риск и достаточно уверены в себе, можете дать сопернику хорошую фору. Но не переусердствуйте, чтобы не оказаться расстрелянным в первые же секунды боя.

После того как вы нажали клавишу 6 в главном меню, на экране появляется таблица, изображенная на рис. 10.6. Первая графа (N0 - номер уровня сложности)

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

нены в предусмотренных пределах. Для коррекции того или иного параметра подведите мигающий курсор к нужной цифре с помощью стандартных курсорных клавиш:

Caps Shift и 5 - влево, Caps Shift и 7 - вверх, Caps Shift и б - вниз, Caps Shift и 8 -вправо, а затем введите новое число. Теперь мы попробуем разобраться с каждой графой таблицы в отдельности.

ANIM (Animation - оживление). Допустимый диапазон чисел - от 0 до 7. Первый шаг к «оживлению» мы уже сделали, задав траектории движения. Но движущийся объект может вращаться, внешне изменяться и т. п. В Games Designer для этого можно задействовать два или четыре спрайта (впрочем, ничто не мешает использовать и объекты, не меняющие своего внешнего вида). И здесь уже придется выбирать, что вам больше по душе: однотипные, но живые, шевелящие хвостами динозавры, либо разнообразные атакующие монстры, внешне мертвые, но не менее опасные. Кроме того, всю эту дичь можно заставить двигаться гуртом по одной траектории или пустить каждого по своей дорожке. Однако всего должно быть в меру, ибо увеличение сложности на одном уровне достигается за счет обеднения другого или сокращения общего количества уровней.

Объясняется это тем, что на все восемь уровней сложности дастся 16 спрайтов, изображающих противника. Таким образом, для каждого уровня существует своя пара картинок, или для пары смежных уровней - четверка (см. раздел «Изменение графики»).

Так как же получить каждый из перечисленных вариантов? Чтобы не запутывать вас долгими рассуждениями, приводим таблицу, из которой без труда можно выбрать требуемое сочетание:

Как видно из таблицы, коды 6 и 7 позволяют получить четыре группы врагов, каждая из которых движется по своей траектории. Но при этом можно использовать только траектории 0. .3. Таким образом, если использовать коды 6 и 7, то в результате графа PAT (см. ниже), определяющая номер траектории, по которой начинают движение противники, оказывается совершенно бесполезной.

SCORE (Счет). В этой графе определяется количество очков, даваемое за попадание в цель на каждом из уровней. За удачный выстрел вы можете начислить себе от 0 до 99 очков. Логично предположить, что призовая сумма будет расти при переходе к более сложным уровням, хотя, конечно, вы вправе иметь на этот счет свое мнение.

PAT (Pattern, номер траектории). Эта графа определяет номер траектории, по которой начинают свое движение противники на каждом из уровней сложности. Естественно, что числа здесь могут быть от 0 до 7 Как уже говорилось, объекты могут перемещаться не только по одной траектории. При использовании четырех траекторий автоматически выбираются номера 0...3, а что касается двух, то в этом случае для определения второго пути берется следующий номер. Например, если в графе PAT задан номер 3, то одна группа противников будет двигаться по этой траектории, а вторая - по траектории 4 (или 0, если начальный номер 7).

MAX (Maximum). Здесь указывается общее количество врагов, которые будут бить вас на каждом уровне. Это число не может превышать 99, но столько, наверное, и не требуется, - можно ограничиться меньшим числом, иначе следующий уровень может оказаться недосягаемым. Игра всегда начинается с уровня под номером 0 (причем ничто не мешает сделать его самым труднопроходимым). Впрочем, если вам захочется пропустить какой-либо уровень, задайте для него в графе МАХ значение ноль. Это удобно делать также на этапе отладки: чтобы взглянуть, что творится на последних уровнях, не придется проходить всю игру от самого начала.

SPD (Speed - скорость). Помимо регулирования скорости перемещения врага, здесь вы решаете, давать ли ему оружие. Кроме того, в этой графе определяется общее количество одновременно атакующих вас противников. Ведь даже если в предыдущей графе задано максимально -возможное число противников, это вовсе не означает, что все они накинутся на вас сразу. Они будут появляться постепенно: стоит уничтожить одного, как на подмогу товарищам спешит следующий. Одновременно же на экране может быть не больше четырех или не больше восьми вражеских объектов. Надо только помнить, что при меньшем их количестве атака будет более стремительной. К тому же стрельба по рассредоточенным мишеням потребует большей сноровки, так что это отнюдь не облегчит вашу участь. Из приведенной ниже таблицы выберите наиболее приемлемый для вас вариант и внесите соответствующий код в графу SPD

NEXT (Следующий). Как уже было сказано, игра всегда начинается с уровня под номером 0. А вот дальнейший порядок чередования уровней вам предлагается выбрать самостоятельно. И далеко не всегда наилучшим оказывается последовательный переход от уровня к уровню в порядке возрастания номеров.

Если в графе ANIM на четном уровне вы записали числа от 4 до 5, то лучше перескочить следующий уровень или вовсе исключить его из игры, так как графика на этом следующем уровне будет повторять предыдущую (вспомните: четверка спрайтов определяет графику двух соседних уровней).

Изменение графики

Выбрав пункт 3 главного меню (ALTER SPRITES), вы увидите на экране изображения спрайтов (рис. 10.7), используемых в текущей игре (как вы помните, Games Designer «держит» в памяти одновременно до восьми игр). Для каждой игры имеется свой набор из 32 спрайтов, пронумерованных от 0 до 31 (спрайт-файл). Все спрайты имеют строго фиксированные размеры - 12 х 12 точек, и каждый «знает» свое место.

Первые 16 спрайтов (с номерами 00... 15) - это ваши противники. Каждому уровню сложности, как вы помните, соответствует пара спрайтов, или двум соседним уровням - четверка (в зависимости от числа, заданного в графе ANIM режима ATTACK WAVES). To есть на уровне О могут использоваться спрайты 00 и 01 либо от 00 до 03; на уровне 1 - спрайты 02 и 03 либо та же четверка от 00 до 03; на следующем уровне - 04 и 05 или же 04...07 и т. д.

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

картинок. Их количество зависит от типа игры, заданного в режиме CONFIGURATION, а точнее, от количества направлений стрельбы. Спрайт с номером 16 появляется при движении вверх, 17 - вверх и вправо, 18 - вправо, и так до спрайта с номером 23 (по часовой стрелке, с поворотом на 45 градусов). В результате получается, что в играх с типом А используется один только спрайт с номером 16, в типе В - все восемь спрайтов, в типе С - спрайт номер 18 и в типе D -спрайты с номерами 16, 18, 20 и 22.

Спрайты 24 и 25 изображают соответственно ваши и вражеские снаряды - по одному спрайту на снаряд.

Спрайты 28...31 соответствуют четырем фазам взрыва. Спрайт 27 используется только в том случае, если вы решили уничтожать противника при непосредственном контакте, то есть в опции CONFIGURATION задали значение специальной функции (SPECIAL FX) в диапазоне 4...7.

Что же касается спрайта 26, то автору этого описания не удалось выяснить его назначение: ни в одном варианте игры он не появляется. Не исключено, что это просто издержка производства или, что более вероятно, он предусмотрен создателями программы в качестве буфера. Во всяком случае, в этом качестве его очень удобно использовать при создании новой графики (см. ниже). А если потребуется поменять местами два спрайта, то без такого буфера и в самом деле не обойтись.

Эти спрайты можно редактировать - изменять по своему вкусу. После того как вы вошли в режим ALTER SPRITES, на запрос Select sprite: [00-31] введите двузначное число, соответствующее номеру спрайта, который вы хотите изменить. Вы войдете в редактор спрайтов (рис. 10.8). На экране появится список управляющих клавиш редактора и два квадрата. Маленький квадратик внизу демонстрирует изменяемый

спрайт в натуральную величину, а большой квадрат справа - этот же спрайт в увеличенном масштабе.

Вверху большого квадрата помещены цифры от 1 до 6. Нажимая соответствующие цифровые клавиши, можно ставить или удалять точки в колонке под цифрой. Один раз нажали - поставили точку, еще раз нажали - убрали. Ряд, в котором происходят эти изменения, отмечается символом >, который можно передвигать вниз (клавиша 8) или вверх (клавиша 7). Но таким способом вам удастся нарисовать только левую половину спрайта. Чтобы перейти к правой стороне, нажмите клавишу 9, и цифры над большим квадратом зеркально отобразятся относительно его вертикальной оси. Теперь таким же образом можно ставить недостающие точки или убирать лишние и на правой стороне. Для возврата к левой половинке вновь нажмите клавишу 9.

Если вам нужно изменить цвет спрайта, нажмите клавишу Caps Shift и, не отпуская ее, цифровую клавишу, соответствующую коду цвета. Но это касается только цвета точек и не затрагивает фона (напомним, что фон устанавливается для всех спрайтов одинаковым с помощью функции BACKGROUND режима CONFIGURATION). Когда работа над спрайтом закончена, когда вы поставили последнюю точку и окрасили картинку в нужный цвет, - нажмите клавишу Enter для возврата к таблице спрайтов. Теперь можно точно так же изменить следующий спрайт или, еще раз нажав Enter, выйти в главное меню.

Прежде чем закончить этот раздел, упомянем еще об одной возможности. Для имитации движения, как вы понимаете, потребуется создать несколько почти одинаковых картинок, отличающихся одна от другой, быть может, совершенно незначительными деталями. Для этого не нужно перерисовывать весь спрайт от начала до конца, достаточно лишь слегка подправить уже нарисованный. Прежде всего понадобится получить копию спрайта в другом спрайте. В Games Designer есть такая возможность. Вводя номер спрайта, который вы хотите скопировать,

удерживайте клавишу Caps Shift, и вместо редактора спрайтов увидите внизу экрана подсказку

MOVE SPRITE XX ТО

Теперь клавишу Caps Shift можно отпустить и ввести номер спрайта, в который будет скопировано изображение. Если в последний момент вы передумали, то можете отменить операцию, нажав Enter. Когда же вы введете номер, то увидите, что получили в точности такой же спрайт на другом месте, а перемещаемый спрайт остался там же, где и был, без изменений.

В заключение расскажем о дополнительных возможностях, не предусмотренных в Games Designer, но которые, немного потрудившись, можно реализовать самостоятельно

Дополнительные возможности

Трудно сказать, в каком виде к вам попадет программа Games Designer. Но обычно она состоит из двух файлов:

1) gd - загрузчик на Бейсике, длина 270 байт, стартовая строка 1;

2) GD - программа в кодах, адрес загрузки 23600, длина 36400 байт.

Для внесения изменений и реализации дополнительных возможностей, о которых пойдет речь ниже, нужно слегка видоизменить кодовый блок. Не пугайтесь, это очень просто. Загрузите бейсик-блок gd оператором MERGE и приведите его к следующему виду:

1 BORDER 1: PAPER 1: INK 7: CLS : PLOT 58,148: DRAW 138,0: DRAW 0,-35: DRAW -138,0:

DRAW 0,35: PRINT AT 4,8;"Software Studios"; AT 6,9;"Games Designer"

2 PRINT AT 12,12; FLASH 1;"LOADING": INK 1:LOAD ""CODE 26000

5 RANDOMIZE USR 26000

10 LOAD "GD"CODE 24600: SAVE "gd" LINE 1: PAUSE 30:POKE PEEK 23631+256*PEEK

23632+2,181:SAVE "GD"CODE 27000,34000

Затем установите ленту на начало второго блока и введите с клавиатуры оператор GO TO 10. Включите магнитофон. Когда коды загрузятся, поменяйте кассету и сохраните программу целиком, нажав любую клавишу. Полученная программа будет загружаться, как обычно, командой LOAD "".

Заметим, что все сказанное никак не касается обладателей дисковой версии, так как все необходимое в этой версии уже проделано.

Теперь вы можете изменить количество «жизней» или получить бессмертие. Для этого в загрузчик нужно включить дополнительные операторы, выполняемые после загрузки кодового блока, но до старта программы, то есть до выполнения оператора RANDOMIZE USR 26000. Если вы хотите увеличить или уменьшить число попыток, введите дополнительную строку:

3 POKE 36919,X

X - это и есть требуемое число «жизней». Помните только, что оно не может превышать 10 и, уж конечно, не должно быть нулем. Стать «бессмертным» поможет другая строка:

4 РОКЕ 38079,0: РОКЕ 38080,195

И, наконец, самое полезное усовершенствование, которое мы можем предложить для облегчения работы с Games Designer. Если вы уже успели попробовать изменить спрайты, то, вероятно, заметили, что редактор спрайтов, мягко говоря, не слишком удобен в работе. Возможно, у вас и вовсе пропадет охота возиться с этим. Мы можем предложить вам значительно более простой и удобный способ получения новой графики с помощью любого графического редактора, например, The Artist II или Art Studio.

Этот способ состоит в следующем: картинки спрайтов рисуются в графическом редакторе, и экранный файл записывается на магнитный носитель. Далее экранный файл загружается в специальную программу - генератор спрайтов, которая «вытаскивает» спрайты из экранной картинки и сохраняет их на ленте. Естественно, можно пользоваться и готовыми экранными файлами.

При рисовании спрайтов нужно помнить несколько правил:

картинки имеют размеры 2x2 знакоместа, но по краям два ряда пикселей должны быть пустыми;

спрайты нужно расположить в два ряда вверху экрана в порядке возрастания номеров слева направо (рис 10.9); имеет значение только цвет тона INK (цвет фона PAPER, как вы помните, устанавливается в программе одновременно для всех спрайтов).

Когда вы получите экранный файл, запишите его на ленту, а затем запустите приведенную ниже программу. Если она набрана без ошибок, то через несколько секунд в верхнем левом углу экрана появится сообщение ОК (при получении сообщения ERROR IN DATA проверьте набор). Дальше программа запросит экранную картинку (Screen$:). загрузит и обработает ее. Затем на запрос Sprite: нужно ввести имя, под которым

будет записан кодовый блок со спрайтами. При повторном использовании программы ее можно запускать со строки 100.

Полученные таким способом спрайты могут быть включены в игру, если вы вставите в бейсик-загрузчик «gd» строку 3 LOAD ""CODE ADDR

где адрес загрузки спрайтов ADDR зависит от номера игры, в которой вы

Ниже приведен текст генератора спрайтов для Games Designer. Она рассчитана на работу с магнитофоном. Для работы с дисководом перед операторами LOAD и SAVE нужно написать RANDOMIZE USR 15619: REM: и в строке 310 максимальное количество символов в имени (число 10) заменить на 8.

10 CLS : RESTORE : LET s=0 20 FOR n=60000 TO 60107 30 READ a: POKE n, a: LET s=s+a 40 NEXT n

50 IF s<>12462 THEN PRINT "ERROR IN DATA": STOP 60 PRINT "OK"

100 LET a$="Screen$: ": GO SUB 300 110 LOAD n$CODE 16384 120 RANDOMIZE USR 60000

130 LET a$="Sprite: ": GO SUB 300: IF n$="" THEN GO TO 130

140 SAVE n$CODE 29696,1088 150 STOP

300 INPUT (a$); LINE n$

310 IF LEN n$>10 THEN LET n$=n$( TO 10)

320 RETURN

1000 DATA 33,0,64,17,0,116,221,33 1010 DATA 32,120,205,124,234,33,64,64

1020 DATA 205,124,234,235,6,32,54,0

1030 DATA 35,16,251,201,6,16,197,229

1040 DATA 229,205,175,234,205,186,234,225

1050 DATA 1,32,0,9,205,186,234,205

1060 DATA 175,234,225,229,124,230,24,203

1070 DATA 47,203,47,203,47,198,88,103

1080 DATA 126,230,7,221,119,0,225,35

1090 DATA 35,221,35,193,16,208,201,175

1100 DATA 6,2,18,19,18,19,36,16

1110 DATA 249,201,6,6,126,230,63,18

1120 DATA 35,19,126,230,252,18,43,36

1130 DATA 19,16,241,201




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



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

Похожие статьи:
Мысли - ответ на "Переписку" в "MsF" N #0b.
Физкультурная революция - Как правильно делать зарядку.
nik-o - диалог nik-o с kq в IRC.
Система - руководство пользователя DIGITАL STUDIO РLАYER v1.0
Описание - Операционная система PQ-DOS

В этот день...   19 апреля