跳转至

Phaser.GameObjects.Text#

Text自身会生成一个内部的隐藏画布,通过标准的Canvas fillText API把文字渲染上去。然再通过这个画布生成纹理,渲染到游戏上。

您只能显示当前已加载且可供浏览器使用的字体:因此字体必须预先加载。Phaser不会为您做这些事情,所以您需要使用第三方字体加载器,或者在您的Phaser游戏所在页面的CSS中准备好字体。

关于性能的说明:每当一个Text对象的内容发生变化时,即改变显示的文本或文本的样式,就需要重新制作Text画布,如果是在WebGL上,则需要重新上传新的纹理到GPU。如果经常使用,或者在游戏中使用大量的Text对象,这可能是一个昂贵的操作。如果你遇到性能问题,你最好使用Bitmap Text,因为它受益于批处理并避免昂贵的Canvas API调用。

new Text(scene, x, y, text, style)#

Extends#

Members#

active :boolean#

alpha :number#

alphaBottomLeft :number#

alphaBottomRight :number#

alphaTopLeft :number#

alphaTopRight :number#

angle :number#

autoRound :boolean#

blendMode :Phaser.BlendModes|string#

body :Phaser.Physics.Arcade.Body|Phaser.Physics.Arcade.StaticBody|MatterJS.BodyType#

cameraFilter :number#

canvas :HTMLCanvasElement#

实例的画布。可以转换成纹理。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/** 文字精灵
 * @description 把输入的文字转换成纹理后再转成精灵,以提高性能
 * 
 */
export class Character extends Phaser.GameObjects.Sprite {
    constructor(scene:Phaser.Scene,x:number,y:number, character:string) {
        const text = scene.make.text({
            add: false,
            x: 0,
            y: 0,
            text: character,
            style: {
                fontSize: '64px',
                fontFamily: 'gb_kaiti',
                color: '#ffffff',
                align: 'center',
                backgroundColor: '#ff00ff'
            }
        });
        // 用Text的画布生成纹理,加到场景的纹理管理器中
        scene.textures.addCanvas(character, text.canvas);
        // 用字头的纹理生成精灵
        super(scene,x,y,character);
    }
}

context :CanvasRenderingContext2D#

data :Phaser.Data.DataManager#

defaultPipeline :Phaser.Renderer.WebGL.WebGLPipeline#

depth :number#

dirty :boolean#

displayHeight :number#

displayList :Phaser.GameObjects.DisplayList|Phaser.GameObjects.Layer#

displayOriginX :number#

displayOriginY :number#

displayWidth :number#

flipX :boolean#

flipY :boolean#

frame :Phaser.Textures.Frame#

hasPostPipeline :boolean#

height :number#

ignoreDestroy :boolean#

input :Phaser.Types.Input.InteractiveObject#

isCropped :boolean#

isTinted :boolean#

lineSpacing :number#

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

name :string#

originX :number#

originY :number#

padding :Phaser.Types.GameObjects.Text.TextPadding#

parentContainer :Phaser.GameObjects.Container#

pipeline :Phaser.Renderer.WebGL.WebGLPipeline#

pipelineData :object#

postPipeline :Array.#

renderer :Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer#

renderFlags :number#

rotation :number#

scale :number#

scaleX :number#

scaleY :number#

scene :Phaser.Scene#

scrollFactorX :number#

scrollFactorY :number#

splitRegExp :object#

state :number|string#

style :Phaser.GameObjects.TextStyle#

tabIndex :number#

text :string#

texture :Phaser.Textures.Texture|Phaser.Textures.CanvasTexture#

tint :number#

tintBottomLeft :number#

tintBottomRight :number#

tintFill :boolean#

tintTopLeft :number#

tintTopRight :number#

type :string#

visible :boolean#

w :number#

width :number#

x :number#

y :number#

z :number#

Methods#

addedToScene()#

addListener(event, fn [, context])#

advancedWordWrap(text, context, wordWrapWidth)#

basicWordWrap(text, context, wordWrapWidth)#

clearAlpha()#

clearMask( [destroyMask])#

clearTint()#

copyPosition(source)#

createBitmapMask( [renderable])#

createGeometryMask( [graphics])#

destroy()#

disableInteractive()#

emit(event [, args])#

eventNames()#

getBottomCenter( [output] [, includeParent])#

getBottomLeft( [output] [, includeParent])#

getBottomRight( [output] [, includeParent])#

getBounds( [output])#

getCenter( [output])#

getData(key)#

getIndexList()#

getLeftCenter( [output] [, includeParent])#

getLocalPoint(x, y [, point] [, camera])#

getLocalTransformMatrix( [tempMatrix])#

getParentRotation()#

getPipelineName()#

getPostPipeline(pipeline)#

getRightCenter( [output] [, includeParent])#

getTextMetrics()#

getTopCenter( [output] [, includeParent])#

getTopLeft( [output] [, includeParent])#

getTopRight( [output] [, includeParent])#

getWorldTransformMatrix( [tempMatrix] [, parentMatrix])#

getWrappedText(text)#

incData(key [, data])#

initPipeline(pipeline)#

initRTL()#

listenerCount(event)#

listeners(event)#

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

on(event, fn [, context])#

once(event, fn [, context])#

preDestroy()#

removeAllListeners( [event])#

removedFromScene()#

removeInteractive()#

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

removePostPipeline(pipeline)#

resetFlip()#

resetPipeline( [resetPostPipelines] [, resetData])#

resetPostPipeline( [resetData])#

runWordWrap(text)#

setActive(value)#

setAlign( [align])#

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

setAngle( [degrees])#

setBackgroundColor(color)#

setBlendMode(value)#

setColor(color)#

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

setData(key [, data])#

setDataEnabled()#

setDepth(value)#

setDisplayOrigin( [x] [, y])#

setDisplaySize(width, height)#

setFill(color)#

setFixedSize(width, height)#

setFlip(x, y)#

setFlipX(value)#

setFlipY(value)#

setFont(font)#

setFontFamily(family)#

setFontSize(size)#

setFontStyle(style)#

setInteractive( [hitArea] [, callback] [, dropZone])#

setLineSpacing(value)#

setMask(mask)#

setMaxLines( [max])#

setName(value)#

setOrigin( [x] [, y])#

setOriginFromFrame()#

setPadding(left [, top] [, right] [, bottom])#

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

setPipelineData(key [, value])#

setPosition( [x] [, y] [, z] [, w])#

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

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

setResolution(value)#

setRotation( [radians])#

setScale(x [, y])#

setScrollFactor(x [, y])#

setShadow( [x] [, y] [, color] [, blur] [, shadowStroke] [, shadowFill])#

setShadowBlur(blur)#

setShadowColor(color)#

setShadowFill(enabled)#

setShadowOffset(x, y)#

setShadowStroke(enabled)#

setSize(width, height)#

setState(value)#

setStroke(color, thickness)#

setStyle(style)#

setText(value)#

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

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

setVisible(value)#

setW( [value])#

setWordWrapCallback(callback [, scope])#

setWordWrapWidth(width [, useAdvancedWrap])#

setX( [value])#

setY( [value])#

setZ( [value])#

shutdown()#

toggleData(key)#

toggleFlipX()#

toggleFlipY()#

toJSON()#

update( [args])#

updateDisplayOrigin()#

updateText()#

willRender(camera)#

评论