【说明】
这是根据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.LINEAR
和ScaleModes.NEAREST
两种。
scaleX :number#
X轴缩放值。下项类此。
scaleY :number#
scene :Phaser.Scene #
所属场景,一个游戏对象只能属于一个场景。
scrollFactorX :number#
X轴滚动因子(在0
和1
之间),控制与摄像机镜头的同步方式,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 |
|
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 |
|
设置时会发出两种事件,初次设置发出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