GameObjectFactory

.GameObjects. GameObjectFactory

游戏对象工厂是一个场景插件,允许你快速创建许多常见的 游戏对象的类型,并在场景中自动注册. 游戏对象直接向工厂注册自己,并注入自己的创作 方法添加到类中.

Constructor

new GameObjectFactory(scene)

Since:
  • 3.0.0
Parameters:
Name Type Description
scene Phaser.Scene 此游戏对象工厂所属的场景.

Members

(protected) displayList :Phaser.GameObjects.DisplayList

Since:
  • 3.0.0
场景显示列表的参考.
Type:

(protected) events :Phaser.Events.EventEmitter

Since:
  • 3.50.0
场景事件发射器的参考.
Type:

(protected) scene :Phaser.Scene

Since:
  • 3.0.0
此游戏对象工厂所属的场景.
Type:

(protected) systems :Phaser.Scenes.Systems

Since:
  • 3.0.0
场景参考系统.
Type:

(protected) updateList :Phaser.GameObjects.UpdateList

Since:
  • 3.0.0
场景更新列表的参考.
Type:

Methods

(static) register(factoryType, factoryFunction)

Since:
  • 3.0.0
游戏对象工厂函数直接调用的静态方法. 通过这个方法,你可以在游戏对象工厂中注册一个自定义的游戏对象工厂, 依次提供名称( `factoryType` )和构造函数( `factoryFunction` ) 当你呼叫相位器时被呼叫.Scene.add[factoryType]方法.
Parameters:
Name Type Description
factoryType string 你将用来呼叫Phaser的工厂的钥匙.Scene.add[factoryType]方法.
factoryFunction function 调用相位器时要调用的构造函数.Scene.add方法.

(static) remove(factoryType)

Since:
  • 3.0.0
游戏对象工厂函数直接调用的静态方法. 用这个方法你可以删除一个在游戏对象工厂注册的自定义游戏对象工厂, 提供一个its `factoryType` .
Parameters:
Name Type Description
factoryType string 要从游戏对象工厂中移除的工厂的密钥.

arc(xopt, yopt, radiusopt, startAngleopt, endAngleopt, anticlockwiseopt, fillColoropt, fillAlphaopt) → {Phaser.GameObjects.Arc}

Since:
  • 3.13.0
创建一个新的弧形游戏对象,并将其添加到场景. 注意:这个方法只有在弧形游戏物体已经被置入相位器时才可用. 弧形是一个游戏对象,可以添加到场景,组或容器.你可以 像对待游戏中的其他游戏对象一样对待它,例如补间,缩放或启用 它用于输入或物理.它为您在中呈现此形状提供了一种快速简单的方法 不使用纹理的游戏,同时仍然利用了在WebGL中完全批处理的优势. 此形状支持填充和描边颜色. 当它渲染时,它显示一个弧形.您可以控制弧的开始和结束角度, 以及角度是顺时针还是逆时针缠绕.使用默认设置 它呈现为一个完整的圆.通过改变角度,您可以创建其他弧形, 例如半圆.
Parameters:
Name Type Attributes Default Description
x number <optional>
0 这个游戏对象在世界上的水平位置.
y number <optional>
0 这个游戏对象在世界上的垂直位置.
radius number <optional>
128 圆弧的半径.
startAngle number <optional>
0 弧的起始角度,以度为单位.
endAngle number <optional>
360 弧的结束角度,以度为单位.
anticlockwise boolean <optional>
false 开始和结束角度的缠绕顺序.
fillColor number <optional>
弧将被填充的颜色,即.0xff0000表示红色.
fillAlpha number <optional>
弧将被填充的阿尔法.您也可以使用其 `alpha` 属性来设置整个形状的alpha.
Returns:
创建的游戏对象.
Type
Phaser.GameObjects.Arc

bitmapText(x, y, font, textopt, sizeopt, alignopt) → {Phaser.GameObjects.BitmapText}

Since:
  • 3.0.0
创建一个新的位图文本游戏对象,并将其添加到场景. 位图文本对象通过获取一个纹理文件和一个描述字体结构的XML或JSON文件来工作. 在呈现期间,文本的每个字母都呈现在显示器上,并按比例隔开和对齐 匹配字体结构. 位图文本对象不如文本对象灵活,因为它们没有阴影,填充等功能 然而,为了使用网络字体,你要用这种灵活性来换取渲染速度.您还可以通过以下方式创建视觉上引人注目的位图文本 在图像编辑器中处理字体纹理,应用填充和任何其他需要的效果. 若要创建多行文本,请在文本字符串中插入\r\n或\ r \ n转义码. 要创建位图文本数据文件,您需要第三方应用程序,例如: http://www.angelcode.com/products/bmfont/ 字形设计师(OS X,商业):http://www.71squared.com/en/glyphdesigner http://kvazars.com/littera/ 对于大多数用例,建议使用XML.如果您希望使用JSON,格式应该等于 通过流行的X2JS库转换有效的XML文件.转换的在线工具可以在这里找到:http://codebeautify.org/xmltojson 注意:这个方法只有在位图文本游戏对象已经被嵌入相位器时才可用.
Parameters:
Name Type Attributes Default Description
x number 游戏对象的x位置.
y number 游戏对象的y位置.
font string 位图字体缓存中要使用的字体的键.
text string | Array.<string> <optional>
要设置为此位图文本内容的字符串或字符串数组.
size number <optional>
要设置的字体大小.
align number <optional>
0 多行位图文本对象中文本的对齐方式.
Returns:
创建的游戏对象.
Type
Phaser.GameObjects.BitmapText

blitter(x, y, key, frameopt) → {Phaser.GameObjects.Blitter}

Since:
  • 3.0.0
创建一个新的快乐游戏对象,并将其添加到场景. 注意:这个方法只有在快乐者游戏对象已经被嵌入相位器的情况下才有效.
Parameters:
Name Type Attributes Description
x number 游戏对象的x位置.
y number 游戏对象的y位置.
key string Blitter对象将使用的纹理的关键点.
frame string | number <optional>
Blitter的默认框架子级将使用.
Returns:
创建的游戏对象.
Type
Phaser.GameObjects.Blitter

circle(xopt, yopt, radiusopt, fillColoropt, fillAlphaopt) → {Phaser.GameObjects.Arc}

Since:
  • 3.13.0
创建一个新的圆形游戏对象并将其添加到场景中. 圆是一个没有定义起点和终点角度的弧,使其呈现为一个完整的圆. 注意:这个方法只有在弧形游戏物体已经被置入相位器时才可用.
Parameters:
Name Type Attributes Default Description
x number <optional>
0 这个游戏对象在世界上的水平位置.
y number <optional>
0 这个游戏对象在世界上的垂直位置.
radius number <optional>
128 圆的半径.
fillColor number <optional>
圆圈将填充的颜色,即.0xff0000表示红色.
fillAlpha number <optional>
圆圈将填充的阿尔法.您也可以使用其 `alpha` 属性来设置整个形状的alpha.
Returns:
创建的游戏对象.
Type
Phaser.GameObjects.Arc

container(xopt, yopt, childrenopt) → {Phaser.GameObjects.Container}

Since:
  • 3.4.0
创建一个新的容器游戏对象,并将其添加到场景. 注意:这个方法只有在容器游戏对象已经被构建到相位器中时才可用.
Parameters:
Name Type Attributes Default Description
x number <optional>
0 这个游戏对象在世界上的水平位置.
y number <optional>
0 这个游戏对象在世界上的垂直位置.
children Phaser.GameObjects.GameObject | Array.<Phaser.GameObjects.GameObject> <optional>
要添加到此容器的可选游戏对象数组.
Returns:
创建的游戏对象.
Type
Phaser.GameObjects.Container

curve(xopt, yopt, curveopt, fillColoropt, fillAlphaopt) → {Phaser.GameObjects.Curve}

Since:
  • 3.13.0
创建一个新的曲线形状游戏对象,并将其添加到场景. 注意:这种方法只有在曲线游戏对象已经内置在相位器中时才可用. 曲线形状是一个游戏对象,可以添加到场景,组或容器.你可以 像对待游戏中的其他游戏对象一样对待它,例如补间,缩放或启用 它用于输入或物理.它为您在中呈现此形状提供了一种快速简单的方法 不使用纹理的游戏,同时仍然利用了在WebGL中完全批处理的优势. 此形状支持填充和描边颜色. 要渲染一个曲线形状,你必须首先创建一个对象,然后把它传递给 构造函数中的曲线形状. 曲线形状还有一个 `smoothness` 属性和相应的 `setSmoothness` 方法. 这允许您通过控制迭代次数来控制形状在WebGL中呈现的平滑程度 发生在建筑过程中.增加和减少默认值以获得更平滑或更多的效果 锯齿状.
Parameters:
Name Type Attributes Default Description
x number <optional>
0 这个游戏对象在世界上的水平位置.
y number <optional>
0 这个游戏对象在世界上的垂直位置.
curve Phaser.Curves.Curve <optional>
用于创建形状的曲线对象.
fillColor number <optional>
曲线将被填充的颜色,即.0xff0000表示红色.
fillAlpha number <optional>
曲线将被填充的阿尔法.您也可以使用其 `alpha` 属性来设置整个形状的alpha.
Returns:
创建的游戏对象.
Type
Phaser.GameObjects.Curve

dom(x, y, elementopt, styleopt, innerTextopt) → {Phaser.GameObjects.DOMElement}

Since:
  • 3.17.0
游戏对象是一种控制和操纵游戏顶部的超文本标记语言元素的方法. 为了显示DOM元素,你必须通过在你的游戏中添加以下内容来启用它们 配置对象: ```javascript dom { createContainer: true } ``` 当这个被添加,相位器将自动创建一个位于顶部的容器 游戏画布.该div的大小与画布相匹配,如果画布大小发生变化,由于 缩放管理器中的设置,dom容器会相应地调整大小. 您可以通过传入DOMStrings或传入对现有的 你希望被相位器控制的元素.例如: ```javascript this.add.dom(x, y, 'div', 'background-color: lime; width: 220px; height: 100px; font: 48px Arial', 'Phaser'); ``` 上面的代码将在给定的x/y坐标向DOM容器中插入一个div元素.中的DOMString 第四个参数设置div的初始CSS样式,最后一个参数是内部文本.在这种情况下, 它将创建一个220像素乘100像素的石灰色div,里面有Arial字体的文本Phaser. 你应该几乎总是,毫无例外地,使用显式大小的HTML元素,以便完全控制 常规游戏内容旁边元素的对齐和定位. 不用直接指定CSS和HTML,你可以使用文件加载器把它加载到 缓存,然后改用 `createFromCache` 方法.您也可以使用 `createFromHTML` 和各种其他 此类中可用于帮助构造元素的方法. 一旦元素被创建,你就可以像控制其他游戏对象一样控制它.您可以设置它的 位置,比例,旋转,alpha和其他属性.它将随着主场景摄像机的移动而移动并被剪辑 在画布的边缘.记住DOM元素的一些限制是很重要的:显而易见的一点是 它们出现在你的游戏画布之上或之下.您不能将它们混合到显示列表中,这意味着您不能 一个DOM元素,然后是一个精灵,然后是它后面的另一个DOM元素. 它们也不能用于输入.为此,您必须使用 `addListener` 方法来添加本机事件 直接倾听.最后一个限制是关于相机.DOM容器的大小与游戏画布相匹配 完全和相应地修剪.DOM元素尊重相机滚动和滚动因子设置,但是如果你 更改相机的大小,使其不再与画布的大小相匹配,它们不会被相应地裁剪. 此外,所有的DOM元素都被插入到同一个DOM容器中,不管它们是在哪个场景中创建的. DOM元素是一个强大的方式来调整你的相位器游戏对象原生HTML.例如,您可以插入 一个多人游戏的登录表单直接进入你的标题屏幕.或高核心表的文本输入框. 或者第三方服务的横幅广告.或者您可能希望将它们用于高分辨率文本显示 UI.选择权在你,只要记住你在处理漂浮在顶端的标准的HTML和CSS 并且应该相应地对待它. 注意:这种方法只有在相位器中内置了DOM元素游戏对象时才可用.
Parameters:
Name Type Attributes Description
x number 这个DOM元素在世界上的水平位置.
y number 这个DOM元素在世界上的垂直位置.
element HTMLElement | string <optional>
现有的DOM元素,或者字符串.如果一个字符串以#开头,它将对该字符串进行 `getElementById` 查找(减去哈希).没有散列,它表示要创建的元素的类型,即. `div` .
style string | any <optional>
如果是字符串,将直接设置为元素的 `style` 属性值.如果是一个普通的对象,将被迭代并传递值.在这两种情况下,这些值会替换之前设置的任何CSS样式.
innerText string <optional>
如果给定,将被直接设置为元素 `innerText` 属性值,替换之前存在的任何内容.
Returns:
创建的游戏对象.
Type
Phaser.GameObjects.DOMElement

dynamicBitmapText(x, y, font, textopt, sizeopt) → {Phaser.GameObjects.DynamicBitmapText}

Since:
  • 3.0.0
创建一个新的动态位图文本游戏