PureBasic

CreateCamera()

Синтаксис

Result = CreateCamera(#Camera , x , y , Width , Height [, VisibilityMask])

Описание


Создаёт новую Камеру в текущем 3D-Мире, в позиции x,y с указанными размерами. Учтите, что эти позиция и размеры - это позиция и размеры отображения на вашем экране, не позиция и размер камеры в 3D-Мире.

В отличие от других графических функций, эти координаты и размеры задаются в процентах, от 0 до 100 (для более точного размещения можно использовать числа с плавающей запятой). Это может показаться странным, но 3D-приложения должны быть независимы от разрешения, и это хороший способ достичь этого. Если камера создана с высотой 50%, то она всегда будет заполнять 50% высоты экрана, вне зависимости, используете ли вы экран 640*480 или 1600*1200. Если камера с таким же Номером уже была создана, предыдущая камера автоматически удаляется и заменяется новой.

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

Параметры

#Camera Номер для идентификации новой Камеры. В качестве этого параметра можно использовать значение #PB_Any, чтобы сгенерировать этот Номер автоматически.
x, y Позиция (в процентах) левого верхнего угла кадра (изображения) камеры на экране. Смотрите картинку ниже.

0%: указывает на левый (для 'X') и верхний (для 'Y') край экрана.
100%: указывает на правый (для 'X') и нижний (для 'Y') край экрана.
Width, Height Размер (в процентах) от экрана, который должен занять кадр (изображение) этой камеры. Это значения от 0 до 100. Смотрите картинку ниже.
VisibilityMask (дополн.) Маска для выбора Сущностей (Entity) и Билбордов, которые будут отображаться на этой Камере.
Камера задаёт собственную маску, и если маска Сущности или Билборда совпадает с ней, то объект будет отображаться. По умолчанию Сущности и Билборды не имеют маски, то есть они всегда будут отображаться на всех камерах.

Возвращаемое значение

Возвращает ненулевое значение, если Камеру создать удалось, в противном случае - 0. Если в качестве параметра #Camera использовалось значение #PB_Any, то в случае успеха будет возвращен сгенерированный Номер.

Пример: позиция и размер создания камеры:

CreateCamera(0, 0, 0, 100, 100) ; Создает камеру, которая заполняет весь экран

CreateCamera(0, 0, 0, 100, 50) ; Создает эффект разделения экрана по горизонтали, для 2 игроков
CreateCamera(1, 0, 50, 100, 50)    ; режим на том же экране

CreateCamera(0, 0, 0, 100, 100) ; Создает полноэкранную камеру
CreateCamera(1, 25, 0, 50, 10)    ; И эффект зеркала заднего вида.
                                ; Обратите внимание, что вид сзади является последним, так что он отображается поверх полноэкранной камеры.

Пример: две камеры, разделяющие экран на две половины:

; верхняя камера
CreateCamera(0, 0, 0, 100, 50)
MoveCamera(0, 0, 50, 150, #PB_Absolute)
CameraBackColor(0, RGB(215, 225, 255))

; нижняя камера
CreateCamera(1, 0, 50, 100, 50)
MoveCamera(1, 0, 50, -150, #PB_Absolute)
CameraBackColor(1, RGB(255, 225, 215))
RotateCamera(1, 180, 0, 0)

См. также

FreeCamera(), ResizeCamera()

Поддерживаемые OS

Все

<- CameraZ() - Camera Index - FreeCamera() ->