跳转至

Phaser.Cameras.Scene2D.Camera#

在Phaser3中,场景即世界(world),它是没有边界的。而游戏大小是指我们在Game配置文件中设置的宽、高值,在场景中,可以通过this.game.scale.widththis.game.scale.height取得(虑缩放后是显示大小this.game.scale.displaySize,即画布实际尺寸)。

场景设置镜头以后,我们只能通过游戏尺寸范围(对应于画布)和镜头视窗范围重叠的区域来看场景中的内容。

一个场景可以设置多个镜头,即同时呈现为多个画面。比如一个用来观察全景,一个用来查看局部细节。

镜头是Phaser中游戏的渲染方式。它们提供了一个观看游戏世界的视野/视角(view),并可以相应地进行定位、旋转、缩放和滚动。

一个镜头由两个元素组成:视窗(viewpoint)和滚动值。视窗和滚动值。

视窗是镜头在游戏中的物理位置和大小。默认情况下,镜头的大小与游戏的大小相同,但它们的位置和大小可以设置为任何值。这意味着如果您想创建一个大小为320x200的镜头,并将其放置在游戏的右下角,您可以通过调整视窗来实现(使用setViewportsetSize等方法)。

如果你想改变镜头在游戏中的位置,那么你可以滚动它。你可以通过属性scrollXscrollY或者方法setScroll来实现。滚动对视窗没有影响,改变视窗对滚动也没有影响。

默认情况下,镜头会渲染所有它能看到的游戏对象。您可以使用ignore方法来改变这一点,允许您在每个镜头的基础上过滤掉游戏对象。

镜头还内置了特效,包括渐变、闪光和镜头抖动。

new Camera(x, y, width, height)#

Extends#

Members#

alpha :number#

alphaBottomLeft :number#

alphaBottomRight :number#

alphaTopLeft :number#

alphaTopRight :number#

backgroundColor :Phaser.Display.Color#

cameraManager :Phaser.Cameras.Scene2D.CameraManager#

centerX :number#

centerY :number#

deadzone :Phaser.Geom.Rectangle#

defaultPipeline :Phaser.Renderer.WebGL.WebGLPipeline#

dirty :boolean#

disableCull :boolean#

displayHeight :number#

displayWidth :number#

fadeEffect :Phaser.Cameras.Scene2D.Effects.Fade#

flashEffect :Phaser.Cameras.Scene2D.Effects.Flash#

flipX :boolean#

flipY :boolean#

followOffset :Phaser.Math.Vector2#

hasPostPipeline :boolean#

height :number#

id :number#

inputEnabled :boolean#

isTinted :boolean#

lerp :Phaser.Math.Vector2#

mask :Phaser.Display.Masks.BitmapMask|Phaser.Display.Masks.GeometryMask#

midPoint :Phaser.Math.Vector2#

name :string#

originX :number#

originY :number#

panEffect :Phaser.Cameras.Scene2D.Effects.Pan#

pipeline :Phaser.Renderer.WebGL.WebGLPipeline#

pipelineData :object#

postPipeline :Array.#

rotateToEffect :Phaser.Cameras.Scene2D.Effects.RotateTo#

roundPixels :boolean#

scaleManager :Phaser.Scale.ScaleManager#

scene :Phaser.Scene#

sceneManager :Phaser.Scenes.SceneManager#

scrollX :number#

摄像头水平滚动所到位置(视口X)。

scrollY :number#

摄像头垂直滚动所到位置(视口X)。

1
2
3
4
update(){
    // 场景默认的主相机向下滚动
    this.cameras.main.scrollY += 0.3;
}

shakeEffect :Phaser.Cameras.Scene2D.Effects.Shake#

tint :number#

tintBottomLeft :number#

tintBottomRight :number#

tintFill :boolean#

tintTopLeft :number#

tintTopRight :number#

transparent :boolean#

useBounds :boolean#

visible :boolean#

width :number#

worldView :Phaser.Geom.Rectangle#

x :number#

镜头视口相对于画布左上角的X坐标,即视口在画布中的X位置。

y :number#

镜头视口相对于画布左上角的Y坐标,即视口在画布中的Y位置。

zoom :number#

zoomEffect :Phaser.Cameras.Scene2D.Effects.Zoom#

zoomX :number#

zoomY :number#

Methods#

addListener(event, fn [, context])#

centerOn(x, y)#

centerOnX(x)#

centerOnY(y)#

centerToBounds()#

centerToSize()#

clampX(x)#

clampY(y)#

clearAlpha()#

clearMask( [destroyMask])#

clearTint()#

cull(renderableObjects)#

destroy()#

emit(event [, args])#

eventNames()#

fade( [duration] [, red] [, green] [, blue] [, force] [, callback] [, context])#

fadeFrom( [duration] [, red] [, green] [, blue] [, force] [, callback] [, context])#

fadeIn( [duration] [, red] [, green] [, blue] [, callback] [, context])#

fadeOut( [duration] [, red] [, green] [, blue] [, callback] [, context])#

flash( [duration] [, red] [, green] [, blue] [, force] [, callback] [, context])#

getBounds( [out])#

getPipelineName()#

getPostPipeline(pipeline)#

getScroll(x, y [, out])#

getWorldPoint(x, y [, output])#

ignore(entries)#

initPipeline(pipeline)#

listenerCount(event)#

listeners(event)#

off(event [, fn] [, context] [, once])#

on(event, fn [, context])#

once(event, fn [, context])#

pan(x, y [, duration] [, ease] [, force] [, callback] [, context])#

preRender()#

removeAllListeners( [event])#

removeBounds()#

removeListener(event [, fn] [, context] [, once])#

removePostPipeline(pipeline)#

resetFlip()#

resetFX()#

resetPipeline( [resetPostPipelines] [, resetData])#

resetPostPipeline( [resetData])#

rotateTo(radians [, shortestPath] [, duration] [, ease] [, force] [, callback] [, context])#

setAlpha( [value])#

setAngle( [value])#

setBackgroundColor( [color])#

setBounds(x, y, width, height [, centerOn])#

setDeadzone( [width] [, height])#

setFlip(x, y)#

setFlipX(value)#

setFlipY(value)#

setFollowOffset( [x] [, y])#

setLerp( [x] [, y])#

setMask(mask [, fixedPosition])#

setName( [value])#

setOrigin( [x] [, y])#

setPipeline(pipeline [, pipelineData] [, copyData])#

setPipelineData(key [, value])#

setPosition(x [, y])#

setPostPipeline(pipelines [, pipelineData] [, copyData])#

setRotation( [value])#

setRoundPixels(value)#

setScene(scene)#

setScroll(x [, y])#

setSize(width [, height])#

setTint( [topLeft] [, topRight] [, bottomLeft] [, bottomRight])#

setTintFill( [topLeft] [, topRight] [, bottomLeft] [, bottomRight])#

setViewport(x, y, width [, height])#

setVisible(value)#

setZoom( [x] [, y])#

shake( [duration] [, intensity] [, force] [, callback] [, context])#

shutdown()#

startFollow(target [, roundPixels] [, lerpX] [, lerpY] [, offsetX] [, offsetY])#

stopFollow()#

toggleFlipX()#

toggleFlipY()#

toJSON()#

update(time, delta)#

zoomTo(zoom [, duration] [, ease] [, force] [, callback] [, context])#

评论