跳转至

【说明】

这是根据Phaser3 API文档中各类之页面右侧的目录整理的,略作说明,或增加代码示例。可做便览之用。

Phaser 3 API Documentation - Class: Sprite#

Phaser.GameObjects. Sprite#

Sprite用于显示静态或动画图像。可以拥有输入事件和物理体(physics body)。还可以应用补间动画、着色、滚动、动画(animate)等效果。

Sprite和Image的主要不同在于,Image不能加动画(animate)。如此,因为动画组件的原因,精灵要多花一点时间来持有、处理更大的API内存印记(API footprint)。如果你不需要动画(animation),所有场合都可以使用Image代替精灵。

new Sprite(scene, x, y, texture [, frame])#

Extends#

Members#

active :boolean#

激活状态。即是否加入所在场景的更新列表(UpdateList)中。

alpha :number#

透明度。以下是渐变透明度:

alphaBottomLeft :number#

alphaBottomRight :number#

alphaTopLeft :number#

alphaTopRight :number#

angle :integer#

旋转角度。rotation则是旋转弧度。

anims :Phaser.GameObjects.Components.Animation#

动画。

blendMode :Phaser.BlendModes|string#

混色模式。

body :object|Phaser.Physics.Arcade.Body|Phaser.Physics.Impact.Body#

物理体,开启物理系统后生成。

cameraFilter :number#

摄像头滤镜,把精灵加入到该摄像头中,从而跟随摄像头运动。

data :Phaser.Data.DataManager#

精灵的键-值对数据。

defaultPipeline :Phaser.Renderer.WebGL.WebGLPipeline#

depth :number#

在场景中的深度,即渲染顺序,也叫z-index。显示列表索引也能控制渲染顺序,但场景、容器都有各自的显示列表。

displayHeight :number#

显示高度,计算了缩放值。包括以下三者,都是显示中的属性,与对应的原始属性不同。

displayOriginX :number#

displayOriginY :number#

displayWidth :number#

flipX :boolean#

x轴翻转。

flipY :boolean#

frame :Phaser.Textures.Frame#

用于渲染的纹理的帧。

height :number#

原始高度。Size(原始尺寸)包括height、width,用于帧和物理体的生成。不影响显示尺寸(包括点击热区)。

ignoreDestroy :boolean#

忽略销毁方法。这时可以跨场景使用精灵,但要注意理清进出双向的引用关系。

input :Phaser.Input.InteractiveObject#

通过GameObject.setInteractive()设置交互属性后,此属性指向交互对象实例。

isCropped :boolean#

设置剪裁setCrop后,用此属性开关剪裁效果。

isTinted :boolean#

是否上色,它是只读属性,与isCropped不同。

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

游戏对象渲染时所使用的遮罩。

name :string#

名字,供开发者使用,Phaser不会填充此属性。

originX :number#

原点(Phaser2叫锚点anchor)X值,缺省值为0.5,即居中。下项类此。

originY :number#

parentContainer :Phaser.GameObjects.Container#

父容器。

pipeline :Phaser.Renderer.WebGL.WebGLPipeline#

WebGL管道。

renderFlags :integer#

渲染标记。与RENDER_MASK比较后确定渲染与否。0001 | 0010 | 0100 | 1000分别对应组件的Visible, Alpha, Transform, Texture。 (未了解实际效果。)

rotation :number#

旋转弧度。angle则是旋转角度。

scaleMode :Phaser.ScaleModes#

缩放模式,包括线性ScaleModes.LINEARScaleModes.NEAREST两种。

scaleX :number#

X轴缩放值。下项类此。

scaleY :number#

scene :Phaser.Scene#

所属场景,一个游戏对象只能属于一个场景。

scrollFactorX :number#

X轴滚动因子(在01之间),控制与摄像机镜头的同步方式,1表示与镜头完全同步,0表示静止不动。 滚动因子会改变视觉位置,但物理系统不会考虑这个因素,比如在碰撞检测时。 因此此值主要用于生成远近关系。(未看到用例效果。) 下项类此。

scrollFactorY :number#

tabIndex :integer#

tab索引(控制在tab键激活中的顺序),保留属性,将来供插件和输入管理器使用。

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

纹理。

tint :integer#

着色值。图像原值乘以提供的着色值,即为新色值。这就意味着,黑色0x000000无法着色(仍是黑色),白色着什么色即得什么色。 以下有四项是渐变着色(各角的着色值会混在一起)。

tintBottomLeft :integer#

tintBottomRight :integer#

tintFill :boolean#

着色是否有填充效果。用于闪白效果。

tintTopLeft :integer#

tintTopRight :integer#

type :string#

类型,即"sprite",扩展类时可填充。

visible :boolean#

是都可见。不影响更新属性active

w :number#

3D物体用四元素表示的旋转角度。

width :number#

原始宽度,不影响显示尺寸。

x :number#

X轴位置。

y :number#

Y轴位置。

z :number#

3D空的Z轴位置。

Methods#

addListener(event, fn [, context])#

增加事件监听器。

clearAlpha()#

清空所有透明度设置,恢复为1

clearMask( [destroyMask])#

清除正在使用的遮罩。

clearTint()#

清空着色设置。

createBitmapMask( [renderable])#

生成并返回一个Bitmap遮罩,以供游戏对象(包括自身)使用。

注意:Bitmap遮罩仅在WebGL中有效,而Geometry遮罩在WebGL和Canvas二者中有效。

需要传入一个可渲染游戏对象的引用。可渲染对象指渲染时使用纹理的对象,如Image, Sprite, Render Texture, BitmapText.

如果不传入可渲染对象,而本游戏对象自身有一个纹理,那么就会使用这个纹理;也就是说,你可以用任何可渲染游戏对象生成Bitmap遮罩。

createGeometryMask( [graphics])#

生成并返回Geometry遮罩,,以供游戏对象(包括自身)使用。

需要传入一个Graphics游戏对象的引用。

如果不传入可渲染对象,而本游戏对象自身即是Graphics对象的实例,那么就会使用它自身来生成遮罩;也就是说,你可以用任何Graphics游戏对象生成Geometry遮罩。

destroy( [fromScene])#

销毁,即从显示列表、更新列表、输入管理器、物理管理器中删除,浏览器即可进行垃圾回收。 需要重用的游戏对象应该通过游戏对象池Game Object Pool进行管理,而不是销毁。

disableInteractive()#

暂时禁用交互,重新打开用setInteractive()(无需参数)。 删除交互用removeInteractive()

emit(event [, args])#

发出事件,调用所有相关监听器的回调函数。

eventNames()#

返回注册有监听器的事件列表。

getBottomLeft( [output] [, includeParent])#

返回左下角的本地空间中坐标(不考虑原点如何)。设置includeParent则计入父容器的因素。 下项类此。

getBottomRight( [output] [, includeParent])#

getBounds( [output])#

h返回边框(几何方形对象)。

getCenter( [output])#

返回在本地空间中的中心点,不考虑原点。

getData(key)#

获取数据。有三种形式:

1
2
3
4
5
// 如获取"gold"键的值
sprite.getData('gold');
sprite.data.values.gold;
// 获取多个值
sprite.getData([ 'gold', 'armor', 'health' ]);

getIndexList()#

获取相关显示列表的数组,包括父容器的。一般供Phaser内部使用。

getLocalTransformMatrix( [tempMatrix])#

获取本地变形矩阵。

getPipelineName()#

获取所用WebGL管道的名称。

getTopLeft( [output] [, includeParent])#

返回左上角的本地空间中坐标(不考虑原点如何)。设置includeParent则计入父容器的因素。 下项类此。

getTopRight( [output] [, includeParent])#

getWorldTransformMatrix( [tempMatrix] [, parentMatrix])#

获取世界变形矩阵。考虑了所有父容器的因素。

initPipeline( [pipelineName])#

WebGL管道初始化,只能在实例化时调用。

listenerCount(event)#

某事件的监听器数量。

listeners(event)#

某事件的所有监听器(数组)。

off(event, fn, context, once)#

移除某事件的所有监听器。

on(event, fn [, context])#

增加一个事件监听器。

once(event, fn [, context])#

增加一次性事件监听器。

play(key [, ignoreIfPlaying] [, startFrame])#

开始播放某动画。

preUpdate(time, delta)#

更新精灵的动画。

removeAllListeners( [event])#

移除所有(或指定的)监听器。

removeInteractive()#

移除交互。不是即时的,而是在游戏的下一步执行。如果是要临时禁用交互,则用disableInteractive()

removeListener(event, fn, context, once)#

移除某事件的监听器。

resetFlip()#

重置翻转,即恢复到未翻转状态。

resetPipeline()#

重置WebGL管道,及恢复生成的状态。

setActive(value)#

设置为激活。这时将加入更新列表。以下各项设置类方法,都有相应的属性,已开列在前。

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

setAngle( [degrees])#

setBlendMode(value)#

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

剪切一个基于文理的游戏对象,比如Sprite,或Image。

剪切出一个方形区域,以限定渲染过程中纹理帧的可见区域。

剪切游戏对象不会改变对象的尺寸、坐标、物理体和点击区域,而仅仅是改变渲染过程中展示什么。

剪切坐标相对于纹理帧而非相对于游戏对象,就是说0 x 0表示左上角。因此,如果你的游戏对象的纹理时800x600,而你想指向展示左半部分,那么你应该调用setCrop(0, 0, 400, 600)

它会自动缩放,以便配合游戏对象的缩放。因此,对于一个缩放规模为2的游戏对象,剪裁100x50,将实际剪切一个200x100的区域。

可以直接传入数值,也可以只在第一个参数传入一个Rectangle对象。

无参数调用将重置剪裁,将isCropped属性切换为false。当剪切的方形与帧的尺寸一致时,你就可以这么做;这样,渲染器就可以跳过几种内部计算。

setData(key, data)#

存储键-值对数据。存储数据前会自动调用setDataEnabled()。有多种使用方法:

1
2
3
4
sprite.setData('name', 'Red Gem Stone');
sprite.setData({ name: 'Red Gem Stone', level: 2, owner: 'Link', gold: 50 });
sprite.getData('gold');
sprite.data.values.gold += 50;

设置时会发出两种事件,初次设置发出setdata,更改时发出changedata_dataKey("dataKey"是具体数据的键值名称)。

setDataEnabled()#

添加数据管理器。

setDepth(value)#

setDisplayOrigin( [x] [, y])#

setDisplaySize(width, height)#

setFlip(x, y)#

setFlipX(value)#

setFlipY(value)#

setFrame(frame [, updateSize] [, updateOrigin])#

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

setMask(mask)#

设置遮罩。

遮罩需预先生成,可以是GeometryMask或BitmapMask。注意:Bitmap遮罩仅在WebGL中有效,而Geometry遮罩在WebGL和Canvas二者中有效。

如果原本就有遮罩,那么会立即替换。

遮罩是在全局空间中定位的,而不是相对于所要应用至的对象。——这是为了多个对象可以分享同一个遮罩。

遮罩对物理系统和输入检测没有影响。遮罩仅仅是渲染组件,只决定渲染过程中你能看到什么,不能看到什么。

setName(value)#

setOrigin( [x] [, y])#

setOriginFromFrame()#

把纹理帧的中心点设为原点。

setPipeline(pipelineName)#

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

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

在指定区域内随机定位。即给原点定位,而不考虑长宽因素。

setRotation( [radians])#

setScale(x [, y])#

setScaleMode(value)#

setScrollFactor(x [, y])#

setSize(width, height)#

设置原始尺寸width、height。

setSizeToFrame(frame)#

设原始尺寸与帧同。

setTexture(key [, frame])#

设置纹理。

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

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

setVisible(value)#

setW( [value])#

setX( [value])#

setY( [value])#

setZ( [value])#

shutdown()#

停播。关闭所有事件监听器。

toggleFlipX()#

切换X轴翻转。下项类此。

toggleFlipY()#

toJSON()#

生成精灵的JSON描述文件。

update( [args])#

可以被定制对象覆盖。以便在对象池中使用基础对象。

updateDisplayOrigin()#

更新游戏对象中缓存的显现源。用于极端情形,一般不用自行处理。

willRender(camera)#

比较renderMask和renderFlags,看要不要重新渲染。同时对比检查游戏对象是否在相机排除列表中。

published from :Phaser 3 API Documentation - Class: Sprite

评论