Виртуальный мир, как и мир Minecraft, имеет систему координат x,y,z. Ось x условно направлена слева направо (в сторону возрастания координаты). Ось y - снизу вверх. Ось z - вперед. Да, несоответствие с миром Minecraft, где ось z направлена назад, т.е. на юг. Но так сделано. Единица длины виртуального мира в точности соответствует размеру одного блока. Плоскость y=0 соответствует поверхности земли.
Прежде чем что-то делать в виртуальном мире, его нужно создать функцией
CreateWorld(mfront,mleft,mright,mback [,clgnd [,clsky]])
Она инициализирует наш виртуальный мир. Первые четыре параметра, которые она принимает - мониторы, на которых будет выводиться изображение. Сюда нужно подставить строки типа "monitor_N" или nil, если соответствующий монитор не используется.
Два опциональных параметра clgnd и clsky задают цвет земли и неба в нашем мире. По умолчанию земля - зеленая, небо - голубое.
Сразу после создания мира наблюдатель (точнее его глаза) находится в точке x=0, y=1.62, z=0
Для перемещения наблюдателя и контроля его положения служат функции:
x,y,z=getPlayerPos() - возвращает координаты глаз наблюдателя
setPlayerPos(x,y,z) - перемещает глаза наблюдателя в точку с указанными координатами
movePlayer(x,y,z) - смещает наблюдателя на указанный вектор.
Объекты в виртуальном мире создаются функцией
obj=CreateObj(x,y,z,paint,params)
где x,y,z - координаты точки привязки объекта, такой точки относительно которой объект будет прорисовываться;
paint - функция прорисовки объекта (о ней чуть позже)
params - необязательная таблица параметров объекта, его свойства, зависящие от самого объекта
Функция CreateObj возвращает указатель на созданный объект, который в дальнейшем можно использовать для перемещения объекта или изменения его свойств.
Все создаваемые объекты пока фантомные т.е. их видно, но они никак не взаимодействуют друг с другом и не препятствуют перемещению наблюдателя.
Создание объекта не приводит к его моментальной прорисовке, а только к сохранению объекта в памяти компьютера. Прорисовкой занимается функция
draw()
Она выводит на мониторы виртуальный мир так как его бы видел наблюдатель. Функцию draw надо вызывать после создания объектов, изменения их свойств и/или перемещения наблюдателя.