说明#
这是根据Phaser3 API文档中各类之页面右侧的目录整理的,略作说明,或增加代码示例。可做便览之用。
Phaser 3 API Documentation - Class: Scene#
Phaser3的场景(Scene)源于Phaser2的State,并包含Phaser2的Game World(游戏对象的生存世界)。 一个完整游戏,在正式游戏场景前常有boot、preload、menu等场景。外部控制场景的细节见Scene.scene(场景管理器)。 场景类的结构通常是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
SceneConfig场景配置对象参考SceneConfig小抄
Phaser. Scene#
new Scene(config)#
Members#
add :Phaser.GameObjects.GameObjectFactory#
指向场景层面的游戏对象工厂函数。只有在场景注入图谱(Injection Map)中定义后才能用。其下的方法通过多个参数生成、添加游戏对象。
1 |
|
- Members
- displayList :Phaser.GameObjects.DisplayList
- scene :Phaser.Scene
- systems :Phaser.Scenes.Systems
- updateList :Phaser.GameObjects.UpdateList
- Methods
- 各种游戏对象GameObjects生成器(类名对应的小写形式)
- particles粒子
- path路径
- quad四边框子。一个预配置的网格(Mesh)游戏对象,由两个三角形/四条边控制一个纹理的变形。
- renderTexture渲染纹理
- tween补间动画
- existing(child)
添加已有的游戏对象,比如客户定制且未在场景中注入的类,不能通过add
/make
引用其工厂函数,而只能用new
生成实例。这些实例就需要通过add.existing(child)
添加。
如有必要,会添加到显示列表DisplayList和更新列表UpdateList。
1 2 |
|
对比add
、make
、new
三者的差异:
1 2 3 4 5 6 7 8 |
|
anims :Phaser.Animations.AnimationManager#
指向全局的动画管理器。Phaser3生成的动画是全局的,可以应用到不同的对象上。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
cache :Phaser.Cache.CacheManager#
指向全局的缓存管理器。成员和方法:
- Members
- audio :Phaser.Cache.BaseCache
- binary :Phaser.Cache.BaseCache
- bitmapFont :Phaser.Cache.BaseCache
- custom :Object.
包含自定义BaseCache条目的对象 game :Phaser.Game 指向自身所属的Game实例 - html :Phaser.Cache.BaseCache
- json :Phaser.Cache.BaseCache
- obj :Phaser.Cache.BaseCache 存放加载的WaveFront OBJ文件
- physics :Phaser.Cache.BaseCache 存放(如加载的)物理学数据
- shader :Phaser.Cache.BaseCache
- text :Phaser.Cache.BaseCache
- tilemap :Phaser.Cache.BaseCache
- xml :Phaser.Cache.BaseCache
- Methods
- addCustom(key)添加自定义键(通过Cache.custom.key取用)
- destroy()销毁所有缓存
Phaser.Cache.BaseCache的成员和方法#
- Members
- entries :Phaser.Structs.Map.
- events :Phaser.Events.EventEmitter
- entries :Phaser.Structs.Map.
- Methods
- add(key, data)
- destroy() 销毁本缓存
- exists(key) 判断键值存在与否(与
BaseCache.has
的行为一致) - get(key)
- has(key) 与
BaseCache.exists
的行为一致。 - remove(key)
- Events
- addEvent 条目增添事件
- removeEvent 条目移除事件
cameras :Phaser.Cameras.Scene2D.CameraManager#
指向场景的镜头管理器。
children :Phaser.GameObjects.DisplayList#
指向场景的显示列表. 指向缓存管理器Phaser.Cache.CacheManager。 生成游戏实例的全局缓存,其中的每个BaseCache实例管理一类已经加载的文件。
@\cache\json file
1 2 3 4 5 6 |
|
data :Phaser.Data.DataManager#
数据管理器
events :Phaser.Events.EventEmitter#
事件发生器
game :Phaser.Game#
指向Game实例。
impact :Phaser.Physics.Impact.ImpactPhysics#
注:ImpactJS与Arcade近似,是一个很流行的老牌H5游戏框架,但2014年后似乎不再更新。
input :Phaser.Input.InputPlugin#
输入插件
lights :Phaser.GameObjects.LightsManager#
灯光管理器
load :Phaser.Loader.LoaderPlugin#
@loader/game load config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
make :Phaser.GameObjects.GameObjectCreator#
参考Scene.add
。
实际指向游戏对象生成函数Phaser.GameObjects.GameObjectCreator。成员与方法的名称与add
属性的的相同;但与add
不同,make
下的方法通过一个配置对象生成游戏对象,并通过变量控制是否添加到显示列表。
1 2 3 4 5 6 |
|
matter :Phaser.Physics.Matter.MatterPhysics#
一个为web准备的精确的2D物理引擎 (a 2D rigid body physics engine for the web ▲● ■)
physics :Phaser.Physics.Arcade.ArcadePhysics#
Arcade物理引擎
registry :Phaser.Data.DataManager#
数据管理器
scene :Phaser.Scenes.ScenePlugin#
场景插件。指向场景插件ScenePlugin。
管理各场景,如用start
停止本场景并启动新场景,或用launch
并行启动UI场景,或pause
、resume
、stop
本场景。
场景间的层级管理可用方法有:bringToTop
, sendToBack
, moveUp
, moveDown
, moveAbove
, moveBelow
。
场景间通信,先建立引用this.scene.get('SceneB')
,如果结合紧密则直接调用方法,如果关系不紧密则监听事件。
参考API文档中的Phaser.Scenes.ScenePlugin、
Let's Talk About Scenes、
phaser-scenes-summary
sound :Phaser.Sound.BaseSoundManager#
基础声音管理器。
@audio/HTML5 Audio/play audio file
1 2 3 4 5 6 7 8 9 10 11 12 |
|
sys :Phaser.Scenes.Systems#
场景系统。千万不要覆盖它。
1 2 3 4 5 |
|
textures :Phaser.Textures.TextureManager#
纹理管理器。
1 2 |
|
time :Phaser.Time.Clock#
时钟。
tweens :Phaser.Tweens.TweenManager#
补间动画管理器。
Methods#
update(time, delta)#
它应该被你自己的场景重写。
published from :Phaser 3 API Documentation - Class: Scene