CameraManager

.Cameras.Scene2D. CameraManager

摄像机管理器是一个属于场景的插件,负责管理所有的场景摄像机. 默认情况下,您可以使用`相机管理器`从场景中访问`this.cameras`,尽管这是可以更改的 在你的游戏配置中. 使用 `add` 方法创建新摄像机.或者用自己的添加代码扩展Camera类,然后添加 新相机在使用 `addExisting` 方法. 相机为你的游戏世界提供了一个视角,并且可以相应地定位,旋转,缩放和滚动. 摄像机由两个元素组成:视口和滚动值. 视口是游戏中摄像机的物理位置和大小.默认情况下,摄像机是 创建了与你的游戏相同的大小,但是它们的位置和大小可以设置为任何值.这意味着如果你 我想制作一个320x200大小的摄像头,放在游戏的右下角, 你可以调整视窗来做到这一点(使用类似 `setViewport` 和 `setSize` 的方法). 如果你想改变相机在游戏中的位置,你可以滚动它.你能做到的 通过属性 `scrollX` 和 `scrollY` 或方法 `setScroll` .滚动对没有影响 视口,更改视口对滚动没有影响. 默认情况下,摄像机会渲染它能看到的所有游戏对象.你可以用 `ignore` 方法来改变它, 允许你在每个摄像机的基础上过滤游戏对象.摄像机管理器最多可以管理31个唯一的 `Game对象忽略功能性` 摄像机.您创建的任何超过31的摄像机都将被赋予一个摄像机标识 零,意味着它们不能用于游戏对象排除.这意味着如果你需要你的相机忽略 游戏对象,确保它是最先创建的31个之一. 相机也有内置的特效,包括淡入淡出,闪光,相机抖动,平移和缩放.

Constructor

new CameraManager(scene)

Since:
  • 3.0.0
Parameters:
Name Type Description
scene Phaser.Scene 拥有摄像机管理器插件的场景.

Members

cameras :Array.<Phaser.Cameras.Scene2D.Camera>

Since:
  • 3.0.0
由该摄像机管理器管理的摄像机对象阵列. 相机会按照它们在此阵列中出现的相同顺序进行更新和渲染. 不要直接在此数组中添加或删除条目.但是,您可以移动内容 如果你想调整显示顺序.
Type:

default :Phaser.Cameras.Scene2D.Camera

Since:
  • 3.17.0
默认未转换的摄像机,不存在于摄像机列表中,也不 计入被管理的摄像机总数.它为他人而存在 系统,以及您自己的代码,是否需要基本的未转换 用于计算视图矩阵的相机实例.
Type:

main :Phaser.Cameras.Scene2D.Camera

Since:
  • 3.0.0
`main` 相机的简便参考.默认情况下,这是 相机管理器创建.您也可以直接设置它,或者使用 `makeMain` 参数 在 `add` 和 `addExisting` 方法中.它允许您从游戏中访问它: ```javascript var cam = this.cameras.main; ``` 另请参见属性 `camera1` , `camera2` 等.
Type:

roundPixels :boolean

Since:
  • 3.11.0
由该摄像机管理器创建或添加到该管理器的所有摄像机都将具有它们的`缩略图` 属性设置为与该值匹配.默认情况下,它被设置为与 游戏配置,但可以随时更改.同样,单个摄像机可以 也可以根据需要进行更改.
Type:
  • boolean

scene :Phaser.Scene

Since:
  • 3.0.0
拥有摄像机管理器插件的场景.
Type:

systems :Phaser.Scenes.Systems

Since:
  • 3.0.0
场景参考.拥有摄像机管理器的场景的系统处理程序.
Type:

Methods

add(xopt, yopt, widthopt, heightopt, makeMainopt, nameopt) → {Phaser.Cameras.Scene2D.Camera}

Since:
  • 3.0.0
将新摄像机添加到摄像机管理器中.摄像机管理器最多可支持31种不同的摄像机. 每个摄像机都有自己的视口,它控制摄像机的大小及其在画布中的位置. 使用 `Camera.scrollX` 和 `camera.scroll` 属性来更改摄像机正在查看的位置,或 `zcention` 等摄像方式.相机还内置了特殊效果,如褪色,闪光,抖动, 平移和缩放. 默认情况下,相机是透明的,会根据它们的`scrollX`来渲染它们能看到的任何东西 和 `scrollY` 值.游戏对象可以通过使用 `Camera.ignore` 方法设置为被摄像机忽略. 该摄像机将把它的 `roundPixels` 属性设置为任何 `CameraManager.roundPixels` 属性.你可以改变 如果需要,在创建后重新创建. 有关更多详细信息,请参见摄像机类文档.
Parameters:
Name Type Attributes Default Description
x number <optional>
0 摄像机视口的水平位置.
y number <optional>
0 `相机`视口的垂直位置.
width number <optional>
`相机`视口的宽度.如果没有给定,它将是游戏配置大小.
height number <optional>
摄像机视口的高度.如果没有给定,它将是游戏配置大小.
makeMain boolean <optional>
false 将此摄像机设置为 `main` 摄像机.这只是使属性 `main` 成为对它的引用.
name string <optional>
'' 摄像机的名称.
Returns:
新创建的摄像机.
Type
Phaser.Cameras.Scene2D.Camera

addExisting(camera, makeMainopt) → (nullable) {Phaser.Cameras.Scene2D.Camera}

Since:
  • 3.0.0
将现有摄像机添加到摄像机管理器中. 摄像机应该是一个 `Phaser.Camera s.Scene 2d.Camera` 实例,或者是它的一个扩展类. 该摄像机将把它的 `roundPixels` 属性设置为任何 `CameraManager.roundPixels` 属性.你可以改变 如果需要,在添加之后进行. 摄像机将被分配一个标识,用于游戏对象排除,然后添加到 经理.只要它在管理器中不存在,它就会被添加然后返回. 如果此方法返回 `null` ,则摄像机已经存在于此摄像机管理器中.
Parameters:
Name Type Attributes Default Description
camera Phaser.Cameras.Scene2D.Camera 要添加到摄像机管理器的摄像机.
makeMain boolean <optional>
false 将此摄像机设置为 `main` 摄像机.这只是使属性 `main` 成为对它的引用.
Returns:
添加到摄像机管理器的摄像机,如果无法添加,则为 `null` .
Type
Phaser.Cameras.Scene2D.Camera

fromJSON(config) → {this}

Since:
  • 3.0.0
基于给定的配置对象或配置对象数组填充此摄像机管理器. 有关对象结构的详细信息,请参见文档.
Parameters:
Name Type Description
config Phaser.Types.Cameras.Scene2D.CameraConfig | Array.<Phaser.Types.Cameras.Scene2D.CameraConfig> 要添加到此摄像机管理器的摄像机配置对象或其数组.
Returns:
此摄像机管理器实例.
Type
this

getCamera(name) → (nullable) {Phaser.Cameras.Scene2D.Camera}

Since:
  • 3.0.0
根据名称获取摄像机. 相机名称是可选的,不需要设置,所以这个方法只有在您 给你的相机起了一个独特的名字.
Parameters:
Name Type Description
name string 摄像机的名称.
Returns:
名称与给定字符串匹配的第一个摄像机,否则为 `null` .
Type
Phaser.Cameras.Scene2D.Camera

getCamerasBelowPointer(pointer) → {Array.<Phaser.Cameras.Scene2D.Camera>}

Since:
  • 3.10.0
返回给定指针下所有摄像机的阵列. 阵列中的第一个摄像机是摄像机列表中最上面的摄像机.
Parameters:
Name Type Description
pointer Phaser.Input.Pointer 要检查的指针.
Returns:
指针下方的摄像机阵列.
Type
Array.<Phaser.Cameras.Scene2D.Camera>

getTotal(isVisibleopt) → {number}

Since:
  • 3.11.0
获取此摄像机管理器中摄像机的总数. 如果设置了可选的 `isVisible` 参数,它将只计算当前可见的摄像机.
Parameters:
Name Type Attributes Default Description
isVisible boolean <optional>
false 将 `true` 设置为仅将可视摄像机包括在总数中.
Returns:
此摄像机管理器中摄像机的总数.
Type
number

getVisibleChildren(children, camera) → {Array.<Phaser.GameObjects.GameObject>}

Since:
  • 3.50.0
获取游戏对象和摄像机的数组,并返回一个新数组 仅包含那些通过`willRender`测试的游戏对象 对着给定的摄像机.
Parameters:
Name Type Description
children Array.<Phaser.GameObjects.GameObject> 一个游戏对象的数组,要对照摄像机进行检查.
camera Phaser.Cameras.Scene2D.Camera 用来过滤游戏对象的摄像头.
Returns:
一个过滤列表,其中只包含场景中的游戏对象,这些对象将针对给定的摄像机进行渲染.
Type
Array.<Phaser.GameObjects.GameObject>

onResize(gameSize, baseSize)

Since:
  • 3.18.0
管理缩放管理器调度的`调整大小`事件的事件处理程序.
Parameters:
Name Type Description
gameSize Phaser.Structs.Size 默认的游戏大小对象.这是未修改的游戏尺寸.
baseSize Phaser.Structs.Size 基本大小对象.游戏维度.画布宽度/高度值与此匹配.

remove(camera, runDestroyopt) → {number}

Since:
  • 3.0.0
从此摄像机管理器中删除给定的摄像机或摄像机阵列. 如果在摄像机管理器中找到它,它将立即从本地摄像机阵列中删除. 如果当前还有 `main` 摄像机, `main` 将被重置为摄像机0. 如果默认参数 `runDestroy` 为 `true` ,则删除的摄像机会自动销毁. 如果你想重新使用相机,那么把它设置为 `false` ,但要知道它们会保留它们的参考 和内部数据,直到被销毁或重新添加到摄像机管理器.
Parameters:
Name Type Attributes Default Description
camera Phaser.Cameras.Scene2D.Camera | Array.<Phaser.Cameras.Scene2D.Camera> 要从此摄像机管理器中删除的摄像机或摄像机阵列.
runDestroy boolean <optional>
true 在从该摄像机管理器中删除的每个摄像机上自动调用`摄像机.销毁摄像机`.
Returns:
移除的摄像机总数.
Type
number

(protected) render(renderer, displayList)

Since:
  • 3.0.0
内部呈现方法.这是由场景自动调用的,不应直接调用. 它将遍历所有本地摄像机,并依次渲染它们,只要它们是可见的并且有 alpha级别> 0.
Parameters:
Name Type Description
renderer Phaser.Renderer.Canvas.CanvasRenderer | Phaser.Renderer.WebGL.WebGLRenderer 将向该摄像机渲染子对象的渲染器.
displayList Phaser.GameObjects.DisplayList 场景的显示列表.

resetAll() → {Phaser.Cameras.Scene2D.Camera}

Since:
  • 3.0.0
重置此摄像机管理器. 这将遍历所有当前的摄像机,销毁它们,然后重置 相机阵列,重置标识计数器,并使用默认值创建1个新的单个相机.
Returns:
新创建的主摄像机.
Type
Phaser.Cameras.Scene2D.Camera

resize(width, height)

Since:
  • 3.2.0
将所有摄像机调整到给定的尺寸.
Parameters:
Name Type Description
width number 相机的新宽度.
height number 相机的新高度.

(protected) update(time, delta)

Since:
  • 3.0.0
主更新循环.场景步进时自动调用.
Parameters:
Name Type Description
time number 由请求动画帧或设置时间输出生成的当前时间戳.
delta number 自最后一帧以来经过的增量时间(毫秒).