Игрушки - 3D construction kit: подробное описание редактора 3D игр типа Castle Master. В статье приведено описание внутреннего языка системмы, который, собственно, и превращает набор локаций и обьектов в полноценную игру.

ZX Format #07
 3D CONSTRUCTION KIT

music by Volga soft
(C) Гил-Гелад
_

 МЕНЮ

Итак, налюбовавшись симпатичной заста-
вочкой  с гордой надписью 3D CONSTRUCTION
KIT, вы получаете возможность богатейшего
выбора средств управления:

  KEMPSTON JOYSTICK
  SINCLAIR JOYSTICK
  CURSOR KEYS

Что соответственно переводится как:

  КЕМПСТОН ДЖОЙСТИК
  СИНКЛЕР  ДЖОЙСТИК
  КУРСОРНЫЕ КЛАВИШИ

 Ткнув  в  понравившуюся  кнопку  (НЕ RE-
SET!), вы вывалетесь в рабочее меню прог-
раммы,  если так можно назвать кучу непо-
нятных  квадратиков,  прямоугольничков  и
несколько  слов,  которые  я уже видел на
створках Моранона.
 Итак пойдем как положено: слева направо,
а сверху вниз.

    File  General Area Condition 

  FILE   Кто сказал-еда? Нет неправда.Это
╔═ меню работы с файлами.
║ 
║ 
╠═ LOAD  Загрузка файла  с  номером 0-9
║ В случае отсутствия файла  выдается со-
║ общение об ошибке с предложением повто-
║ ра.
╠═ SAVE  Сохранение файла  под  номером
║ 0-9 на диске (DISK) или ленте (TAPE). К
║ великому сожалению тот, кто дисковерси-
║ ровал 3D не позаботился о функции OVER-
║ WRITE, что поистине великой скорби дос-
║ тойно. Спасибо хоть за то, что вообще
║ идет работа с диском.
║ 
╚═  NEW  Стирание всех данных из памяти
о созданной игре. Команда начисто уничто-
жает любые воспоминания о существовании у
вас самого компьютера.



 GENERAL   Не бойтесь, это не из армии за
╔═  вами. Это просто установка всех
║  параметров программы.
║ 
║ 
╠═ RESET  Опция, возвращающая  вас  в об-
║  ласть, заявленную  исходной (см.
║  START AREA  данного меню), и на-
║  чало программы, если  что-то уже
║  написано.
╠═ SETUP  Подменю установки параметров
║  ─┐  игры.
║     │
║     ├─CLIMB ABILITY. Высота препятствия
║     │    преодолеваемая героем.
║     │
║     │
-║     ├─FALL ABILYTLY. Высота, с  которой
║     │    герой может упасть без особого
║     │    вреда для себя и компьютера.
║     │    (примерно высота дивана. :))
║     │  
║     │
║     │
║     ├─WALK SPEED. Скорость перемещения
║     │    вперед-назад.
║     │
║     │
║     │
/║     ├─TURN SPEED. Скорость поворота во-
  ║     │    круг своей оси.
║     │
║     │
║     │
,║     ├─START AREA. Начальная локация.
║     │
║     │
║     │
.║     ├─START ENTRANSE. Начальный выход.
║     │
║     │
║     │
║     └─ACTIVATE RANGE. 
║ 
║ 
║ 
║ 
╠═ INSTRUMENT Чрезвычайно полезная опция,
║    позволяющая назначать места и номера
║    выводимых на экран переменных. Имеет
║    следующий вид:
║ 
║  NUMBER - Номер"инструмента". Зависит
║ от того, какую позицию вы выбрали в
║ предыдущем меню.
║ 
║  TYPE - Тип представления информации.
║    может быть:
  ║    NUMBE - числовая
║    H BAR - горизонтальная полоса
║    V BAR - вертикальная полоса
║    BLANK - данный"инструмент"не исполь-
║   зуется.
║ 
║    X KOORD─┐  Х-овая и У-овая координа-
║    ├─ та вывода значения пере-
║    Y KOORD─┘  менной на экран.
║ 
║    LENGHT - длина выводимой  информации
║  от 0 до 5.
║    VARIABLE - номер переменной, которая
║  выводится  данным  инстру-
G║  ментом.
║    COLOUR - а это просто цвет. Могли бы
║  и сами догадаться.
║ 
║ 
╠═ WINDOW Не надо кидаться в монитор утю-
║  гами. Это не МИКРОСОВТ,это изме-
║  нение параметров вывода окна.
║ 
║    Х pos  - см X KOORD
║ 
║    Y pos  - см Y KOORD
║ 
 ║    X size - размер по Х
║ 
 ║    Y size - размер по У
║ 
║ 
.╚═ TEST Самая приятная и нужная  опция во
 всей программе.Она позволяет полю-
 боваться только что созданной вами
 программой,до которой (и в этом вы
 можете признаться  честно)  всяким
 DOOM-aм или задрипаным Duk-ам пых-
 теть и пыхтеть.

  AREA.   Меню,позволяющее совершать вся-
╔═  кие пакости с локациями. Напри-
║  мер - РЕДАКТИРОВАТЬ их.
║ 
║ 
╠═ ADD AREA Создать еще одну локацию.
║ 
║ 
╠═ EDIT AREA Редактировать локацию.
║  ─┐ 
║    │ 
  ║    └─АРЕА  (номер)
║  OBJECTS. число обьектов в
║ -   локации.
║  SCALE. Масштаб
║ 
║ 
║ 
╠═ GOTO AREA Изменение номера текущей ло-
║  кации.
║ 
║ 
╠═ COLOUR AREA Изменение цвета локации.
║  ─┐ 
║   │
║   ├──INC. цвет чернил(для тех,
║   │   кто еще не знает)
║   │
║   ├──PAPER. цвет бумаги.
║   │
║   │
║   ├──BRIGHT. яркость.
║   │
║   │
║   └──BORDER. цвет бордюра.
║ 
║ 
║ 
╠═ ADD ENTRNC Добавить выход.
║ 
║  В Н И М А Н И Е ! 
║ ┌$─┐
║ │ Номер выхода должен соответствовать│
║ │ номеру локации, куда он ведет. │
║ └$─┘
║ 
║ 
║ 
╚═ EDIT ENTRNC Редактировать выход.

 CONDITION    Самое нужное  меню  во всей
╔═   программе. Оно и  только оно
║  позволит  писать Вам всю ло-
║  гику и ругать игрока!
║ 
║ 
╠═ GENERAL Здесь пишется та  часть  прог-
║  раммы,которая должна выполнять-
║  ся независимо от номера локации
║  
╠═LOCAL А это, как  Вы  уже  поняли,  та
║  часть, которая выполняется ТОЛЬКО
║  в этой локации.
║ 
╠═PROC Подпрограммы,  вызываемые  откуда
║  угодно (даже из ванной :) ).
║ 
║ 
║ 
╚═ MESSAGE Сообщения,  приветы  друзьям и
 прочий текст, выводимый  в ходе
 игры. Например "You're dead,
 boy."

 Итак,  если  Вы  дочитали досюда, то или
Вам совершенно нечего делать, или большая
нужда  в  этом редакторе. Для вторых про-
должаю.

Все вышеизложенное касалось верхней стро-
ки.  Теперь переведите взгляд в центр эк-
рана. Там Вы можете наблюдать много всего
интересного.

 Слева располагаются 2 (два) окна:

  VIEW (Направление взгляда на картинку)

NORTH  [с севера], SOUTH [с юга], WEST [с
запада],  EAST  [с востока] и PLAN [свер-
ху])

  МОDE (тип перемещения: FLY1, 

FLY2 [полеты] и WALK [хождение пешком])

 По  центру располагаются иконки управле-
ния  Вашим  положением  в локации. Думаю,
здесь и так все понятно.

 Теперь рассмотрим надписи в нижней части
экрана.

  GLOBAL.  Ругательство,  позволяющее без
лишних трудов создать стены и потолок.

  COPY.  Самое страшное заклятье. создает
еще один предмет из тех, что уже созданы.

  CREATE. Нажав на эту иконку, Вы выпаде-
те в меню создания предметов, где сможете
сотворить:


 ЕXIT! - просто вернетесь к CREAT'у
 SENSR  - При выборе этой опции на экране
появляется  точка, плюющая в игрока лазе-
ром.
 RECT  -  Прямоугольник.
 PYRMD -  Усеченная пирамида.
 CUBE  -  Куб.
 LINE  -  Отрезок прямой.
 TRI.  -  Треугольник.
 QUAD. -  Квадрат.
 PENT. -  Пятиугольник:)
 HEX.  -  Шестиугольник.


 EDIT.  Выбрав  эту  опцию можно будет (с
помощью  стрелок) двигать выбранный пред-
мет  (MOVE), растягивать его в трех изме-
рениях  (STRETCH) стягивать его же в пяти
изметениях  (SHRINK),  крутить вообще как
угодно  (TURN)  и вроде бы даже уродовать
по-всякому (перемещать вершины) (POINT).
.  LOAD,  RESRT и SAVE дублируют аналогич-
ные команды верхней строки.
  SHADE.  Тень.  Позволяет менять заливку
стенок предмета.
  DELETE.  Позволяет  уничтожить  слишком
изуродованную фигуру.
  ATTR.  Опция,  позволяющая  определить,
,каким предмет был изначально (INITIAL): 
- Видимым  (VISBLE),  или невидимым (INvI-
SIBLE),  а  так же его текущее положение:
видимый,  невидимый,  уничтоженный (DEST-
ROYED). 

 Ну,  вроде  бы с менюшками все. Теперь
хорошо бы с языком разобраться. Кто захо-
чет  сделать  это сам, или кому не понра-
вится  предлагаемая  версия,  может смело
жать  "волшебную  кнопку"  и, набрав DUMp
#E850,  лично ознакомиться со словарем. И
если  он найдет что-либо, упущенное мной,
то пусть сообщит об этом мне через журнал
(очень прошу).

 Интерпретатор  3DCK предоставляет в рас-
поряжение  программера 255 флагов (сиречь
переменных)  с  которыми  и  производятся
почти все операции. В дальнейшем рассмот-
рении:
 = число 
 = флаг 
 = номер предмета 
 = номера локаций 
 = номер сообщения 

 SETV a b - Присвоить флагу b значение a.
 например: SETV 001 002 запишет
 во вторую переменную число 1.
- ADDV a b - Прибавить к значению флага b
 число а. Работает с тремя раз-
 рядами (0-255)
- ADCV a b - Прибавить к значению флага b
 число а. Работает с пятью раз-
 рядами (0-9).
 SUBV а b - Вычесть из флага b число а
   Работает с байтом (0-255)
 SBCV a b - Вычесть из флага b число а
 Работает с 5 разрядами.

 ВНИМАНИЕ ! Эти арифметические операции
почему-то  портят  значения, хранящиеся в
ближайшем  меньшем  флаге.  Может  у меня
версия глючная?

  ORV a b Просто логические операции ИЛИ
 ANDV a b И
   XORV a b ИСКЛЮЧАЮЩЕЕ ИЛИ

 CMPV a b - Сравнить значение Флага b с
 числом а
 IFEQ - Если они равны. (условие)
 IFGT - Если больше.
 IFLT - Eсли меньше.
 THEN - Тогда (слово после любого ус-
 ловия.)
 ELSE - В противном случае (ветвление
 в условии.)
 AND ] - И, ИЛИ для проверки нескольких
 OR ] условий.

 IFSHOT c - Если было попадание в предмет
 с номером с.
 IFHIT - Eсли в героя было попадание.
 IFCRUSH  -  Если  герой  упал  с высоты,
 большей, чем было задано в GE-
 NERALSETUPFALL ABILITY.
 IFVIS c - Если предмет с виден.
 IFTIMER  - Если установлен таймер.
 IFACTIVE с - Если предмет активизирован
  (условие встречается в игре-
 приложении [файл 0] в локации
 с компьютером. )
 ENDIF - Обязательное слово в конце ус-
 ловия.
 VIS c - Сделать предмет с видимым
 INVIS c - Сделать предмет с невидимым.
 DESTROY c - Уничтожить предмет с.
 GOTO d e - Переход из локации d в лока-
цию е.
 MODE a - Tип видения. Програмный аналог
   окна MODE основного меню.
 SETWPOS a f - Позиция игрового окна.
 SETWSIZE a f - Размер игрового экрана.
 COLOUR  a f - Изменение цвета локации.
 - что окрашивать (001 - стены
 003 - бордюр), a-цвет.
 SOUND a   - Однократный звук типа "Тю".
/ SYNCSND а - Звук с возрастающей частотой
 и амплитудой.
 DELAY a - Задержка. Аналoг PAUSE в
 бейсике.
 TEXTCOL a - Цвет текста.
 PRINT a f z - Распечатка сообщения z
 REDRAW - Перерисовка экрана.
 CALL a - Вызов процедуры а.
 END - Обязательное слово в конце каждого
 модуля.  Ставится автоматически при
 его создании (CREAT).

  Ну  вот вроде бы и все, что я хотел Вам
поведать. А ежели я что упустил, то прошу
меня  извинить,  ибо то не по умыслу зло-
дейскому, а токмо по серости своей и нез-
нанию.

За сим прощаюсь с вами.
 Ваш G-G.

Поделитесь вашим мнением о статье