最近在研究H5游戏开发,于是进行了一波调研发现了这篇博客解释的很好 HTML5游戏引擎深度测评,有兴趣的可以去看看。
通过各方面的衡量和和业务的考量,最终选择了 Phaser H5游戏框架来开发。本文主要介绍它的api,具体范例,会在第二篇进行全部详细的提供出来;
Phaser
Via: 如果一个类在 via 列中有一个条目,则意味着您可以通过this
引用快速访问它。
您可以从任何状态通过 this.camera 控制相机,如果游戏已全局定义,则可以通过 game.camera 控制相机。
属性 |
Via |
说明 |
Game |
game |
管理启动、创建子系统以及运行逻辑和渲染循环 |
World |
world |
所有游戏对象所在的游戏世界 |
Camera |
camera |
相机是您进入游戏世界的视角 |
Stage |
stage |
舞台是根显示对象 |
Game States
属性 |
Via |
说明 |
StateManager |
state |
创建、管理和交换您的游戏状态 |
State |
|
可以扩展的基本游戏状态对象 |
Loader
属性 |
Via |
说明 |
Cache |
cache |
缓存是所有加载的资产存储和检索的地方 |
Loader |
load |
加载所有外部资产类型(图像、音频、json、xml、txt)并将它们添加到缓存中。由 States preload 方法自动调用 |
LoaderParser |
|
加载器使用的静态类来处理复杂资产类型的解析 |
Game Scaling
属性 |
Via |
说明 |
ScaleManager |
scale |
跨设备管理游戏的大小和缩放 |
FlexGrid |
scale.grid |
响应式布局网格(试用中) |
FlexLayer |
|
响应式网格层(试用中) |
Signals
属性 |
说明 |
Signal |
Signal是移相器内部事件系统 |
SignalBinding |
管理哪些回调绑定到Signal |
Plugins
属性 |
Via |
说明 |
PluginManager |
plugins |
安装、更新和销毁插件 |
Plugin |
|
可以扩展的基础插件对象 |
Game Objects
属性 |
Via |
说明 |
GameObjectFactory |
add |
一个辅助类,可以创建任何 Phaser 游戏对象并将它们添加到游戏世界 |
GameObjectCreator |
make |
可以创建和返回任何 Phaser 游戏对象的辅助类 |
Group |
|
组可以包含多个游戏对象,并具有搜索、排序、调用、更新和过滤它们的能力 |
InputHandler |
*object*.input |
如果为输入启用了游戏对象,则该类控制所有与输入相关的事件,包括点击和拖动 |
Events |
*object*.events |
所有游戏对象级别的事件 |
Create |
create |
动态 Sprite 和 Texture 生成方法 |
Display
属性 |
说明 |
Sprite |
具有纹理的游戏对象,能够运行动画、输入事件和物理 |
Image |
具有纹理和输入但没有物理或动画处理程序的更轻的游戏对象 |
TileSprite |
具有可滚动和缩放的重复纹理的游戏对象 |
Button |
一个带有辅助方法和事件的图像游戏对象,可将其转换为 UI 按钮 |
SpriteBatch |
自定义 Sprite 批次。如果多个 Sprites 共享相同的纹理,则可以显着加快渲染速度 |
Rope |
具有基于条带的纹理的关节游戏对象 |
Graphics
属性 |
说明 |
Graphics |
允许您绘制原始形状(直线、矩形、圆形)、设置颜色、描边和填充 |
BitmapData |
为空白 Canvas 对象提供强大的接口。可以用作 Sprite 纹理 |
RenderTexture |
一种特殊的纹理,您可以非常快速地绘制 Sprites |
Text
属性 |
说明 |
Text |
使用系统字体或 Web 字体显示文本,可选择填充、阴影和描边 |
BitmapText |
使用位图字体文件的基于纹理的文本对象 |
RetroFont |
类似于 BitmapText 对象,但使用经典的 sprite 表。每个字符都是固定宽度的 |
Animation
属性 |
Via |
说明 |
AnimationManager |
*sprite*.animations |
在 Sprite 游戏对象上添加、播放和更新动画 |
Animation |
|
动画管理器创建的基础动画对象 |
AnimationParser |
|
Phaser Loader 在内部使用它来解析来自外部文件的动画数据 |
FrameData |
|
构成动画的 Frame 对象的集合 |
Frame |
|
动画的单个帧。存储在 FrameData 对象中 |
Geometry
属性 |
说明 |
Circle |
由位置和直径组成的 Circle 对象 |
Ellipse |
由位置、宽度和高度组成的 Ellipse 对象 |
Line |
由位于 Line 起点和终点的两个点组成的 Line 对象 |
Point |
由 x 和 y 位置组成的 Point 对象 |
Polygon |
由一系列点组成的多边形对象 |
Rectangle |
由 x、y、宽度和高度组成的 Rectangle 对象 |
RoundedRectangle |
由 x、y、宽度、高度和圆角半径组成的矩形对象 |
Time
属性 |
Via |
说明 |
Time |
time |
所有 Phaser 时间相关操作所依赖的核心内部时钟 |
Timer |
time.create |
包含一个或多个 TimerEvent 的自定义计时器。可以使用一次或设置为重复 |
TimerEvent |
time.add |
单个时间相关的事件对象。属于 Phaser.Timer |
Tilemaps
属性 |
说明 |
Tilemap |
一张 Tilemap 由一个或多个 TilemapLayer 和关联的图块数据组成。包含用于图块数据操作和 TilemapLayer 生成的方法 |
TilemapLayer |
Tilemap 中的单个图层。继承自 Phaser.Sprite 并负责渲染自身 |
Tileset |
包含用于由 TilemapLayer 渲染图块的纹理和数据的对象 |
Tile |
具有相关属性的单个 Tile 对象。地图中的每个图块都存在其中一个 |
TilemapParser |
用于解析外部加载的地图数据的静态类。通常由 Phaser.Loader 直接调用 |
Math
属性 |
Via |
说明 |
Math |
math |
包含大量与数学相关的辅助方法,包括模糊逻辑和插值 |
QuadTree |
|
一个独立的四叉树实现。由 Arcade Physics 使用,但也可以直接使用 |
RandomDataGenerator |
rnd |
可播种可重复随机数据生成器 |
Network
属性 |
Via |
说明 |
Net |
net |
浏览器 URL 和查询字符串相关方法 |
Particles
属性 |
Via |
说明 |
Particles |
particles |
Phaser 粒子管理器。在游戏循环期间调用并更新任何关联的粒子发射器 |
Emitter |
|
基于街机物理的粒子发射器。通过 GameObjectFactory 中的 add.emitter 创建 |
Particle |
|
发射器发射的单个粒子对象。扩展 Phaser.Sprite |
Physics
属性 |
Via |
说明 |
Physics |
physics |
核心物理管理器。提供对所有物理子系统的访问 |
Arcade Physics
属性 |
Via |
说明 |
Arcade |
physics.arcade |
Arcade Physics 处理器。包含碰撞、重叠和移动相关的方法 |
Body |
*sprite*.body |
街机物理机构。包含速度、加速度、阻力等相关属性 |
Weapon |
game.add.weapon |
Arcade Physics 驱动的武器插件,用于轻松管理子弹池 |
Ninja Physics
默认情况下,Ninja Physics 未捆绑在 Phaser 中
属性 |
Via |
说明 |
Ninja |
physics.ninja |
Ninja物理处理器。包含碰撞、重叠和移动相关的方法 |
Body |
*sprite*.body |
Ninja物理身体。包含速度、加速度、阻力等相关属性 |
AABB |
|
AABB Ninja物理体型 |
Circle |
|
圆形Ninja物理身体类型。 |
Tile |
|
Tile Ninja物理身体类型 |
P2 Physics
属性 |
Via |
说明 |
P2 |
phyiscs.p2 |
P2物理世界。包含碰撞、重叠和移动相关的方法 |
Body |
*sprite*.body |
P2物理体。包含速度、加速度、阻力等相关属性 |
BodyDebug |
|
P2 Body 对象的调试特定版本。呈现出其形状以进行可视化调试 |
Material |
|
用于世界响应的 P2 材质,例如摩擦和恢复 |
ContactMaterial |
|
用于联系响应的 P2 联系材料 |
CollisionGroup |
|
P2碰撞组 |
FixtureList |
|
P2 夹具列表处理程序 |
PointProxy |
|
负责将 Phaser Game World 代理到 P2 物理值 |
InversePointProxy |
|
负责将 Phaser Game World 代理为反转的 P2 物理值 |
Spring |
|
一个 P2 弹簧对象 |
RotationalSpring |
|
P2 旋转弹簧对象 |
Input
属性 |
Via |
说明 |
Input |
input |
输入管理器。负责处理所有输入子系统。还负责启用输入的游戏对象 |
Pointer |
input.pointer |
指针封装了所有与鼠标或触摸相关的输入,无论它是如何生成的。在多点触控系统上,可以同时激活多个指针。在与输入相关的事件中,传递了对相应指针的引用 |
DeviceButton |
pointer.leftButton |
代表鼠标或笔/手写笔上的按钮 |
Keyboard |
input.keyboard |
键盘输入处理程序。侦听与设备相关的事件。也可以创建 Key 对象。 |
Key |
|
Key 对象负责监听特定的 Key。由键盘类创建 |
KeyCode |
|
KeyCode 常量在创建新的 Key 对象时使用 |
Mouse |
input.mouse |
鼠标事件处理程序。侦听与设备相关的事件并将它们传递给活动指针 |
MSPointer |
input.mspointer |
MSPointer 事件处理程序。侦听与设备相关的事件并将它们传递给活动指针 |
Touch |
input.touch |
触摸事件处理程序。侦听与设备相关的事件并将它们传递给活动指针 |
Gamepads
属性 |
Via |
说明 |
Gamepad |
input.gamepad |
游戏手柄管理器负责管理所有连接到设备的游戏手柄。创建 SinglePad 实例 |
SinglePad |
input.gamepad.pad<1,4> |
代表一个连接的游戏手柄 |
DeviceButton |
|
表示 SinglePad 实例上的按钮 |
Tweens
属性 |
Via |
说明 |
TweenManager |
tweens |
Tween Manager 创建、更新和销毁所有活动的补间 |
Tween |
|
一个补间对象。通过 game.add.tween 创建。由表示补间和任何子补间的 TweenData 对象组成 |
TweenData |
|
TweenData 对象包含与补间相关的所有信息。由 Phaser.Tween 对象创建并属于 Phaser.Tween 对象 |
Easing |
|
包含可用于 Tweens 的所有缓动函数的静态类 |
Sound
属性 |
Via |
说明 |
SoundManager |
sound |
声音管理器控制所有声音对象并可以播放、循环、淡入淡出和停止声音 |
Sound |
|
声音对象。可直接播放、暂停、停止,并可调节音量 |
AudioSprite |
|
Audio Sprite 是一个 Sound 对象,具有代表音频部分的相关标记数据 |
System
属性 |
Via |
说明 |
Canvas |
|
包含 Canvas 创建和操作方法的静态类。比如添加到dom,设置触摸动作,平滑和图像渲染 |
Device |
game.device |
Device 类在启动时检查系统功能和设置,并存储它们供以后访问 |
DOM |
|
包含 DOM 特定方法的静态类,包括偏移处理、视口校准和边界检查 |
RequestAnimationFrame |
game.raf |
为核心游戏更新循环抽象出 RAF 或 setTimeOut 的使用 |
Utils
属性 |
Via |
说明 |
ArraySet |
|
ArraySet 是一个 Set 数据结构(项目在集合内必须是唯一的),它也保持顺序 |
ArrayUtils |
|
特定于数组的方法,例如 getRandomItem、shuffle、transposeMatrix、rotate 和 numberArray |
Color |
|
Phaser.Color 是一组辅助颜色操作和转换的静态方法 |
Debug |
game.debug |
显示游戏对象调试信息的方法集合 |
LinkedList |
|
一个基本的链表数据结构 |
Utils |
|
对象和字符串检查和修改的实用方法。包括getProperty、pad、isPlainObject、extend和mixin |