JoshWindsor 发表于 2023-2-20 15:05

H5游戏开发之 Phaser

最近在研究H5游戏开发,于是进行了一波调研发现了这篇博客解释的很好 HTML5游戏引擎深度测评,有兴趣的可以去看看。
通过各方面的衡量和和业务的考量,最终选择了 Phaser H5游戏框架来开发。本文主要介绍它的api,具体范例,会在第二篇进行全部详细的提供出来;
Phaser


Via: 如果一个类在 via 列中有一个条目,则意味着您可以通过this引用快速访问它。
您可以从任何状态通过 this.camera 控制相机,如果游戏已全局定义,则可以通过 game.camera 控制相机。
属性Via说明Gamegame管理启动、创建子系统以及运行逻辑和渲染循环Worldworld所有游戏对象所在的游戏世界Cameracamera相机是您进入游戏世界的视角Stagestage舞台是根显示对象Game States

属性Via说明StateManagerstate创建、管理和交换您的游戏状态State可以扩展的基本游戏状态对象Loader

属性Via说明Cachecache缓存是所有加载的资产存储和检索的地方Loaderload加载所有外部资产类型(图像、音频、json、xml、txt)并将它们添加到缓存中。由 States preload 方法自动调用LoaderParser加载器使用的静态类来处理复杂资产类型的解析Game Scaling

属性Via说明ScaleManagerscale跨设备管理游戏的大小和缩放FlexGridscale.grid响应式布局网格(试用中)FlexLayer响应式网格层(试用中)Signals

属性说明SignalSignal是移相器内部事件系统SignalBinding管理哪些回调绑定到SignalPlugins

属性Via说明PluginManagerplugins安装、更新和销毁插件Plugin可以扩展的基础插件对象Game Objects

属性Via说明GameObjectFactoryadd一个辅助类,可以创建任何 Phaser 游戏对象并将它们添加到游戏世界GameObjectCreatormake可以创建和返回任何 Phaser 游戏对象的辅助类Group组可以包含多个游戏对象,并具有搜索、排序、调用、更新和过滤它们的能力InputHandler*object*.input如果为输入启用了游戏对象,则该类控制所有与输入相关的事件,包括点击和拖动Events*object*.events所有游戏对象级别的事件Createcreate动态 Sprite 和 Texture 生成方法Display

属性说明Sprite具有纹理的游戏对象,能够运行动画、输入事件和物理Image具有纹理和输入但没有物理或动画处理程序的更轻的游戏对象TileSprite具有可滚动和缩放的重复纹理的游戏对象Button一个带有辅助方法和事件的图像游戏对象,可将其转换为 UI 按钮SpriteBatch自定义 Sprite 批次。如果多个 Sprites 共享相同的纹理,则可以显着加快渲染速度Rope具有基于条带的纹理的关节游戏对象Graphics

属性说明Graphics允许您绘制原始形状(直线、矩形、圆形)、设置颜色、描边和填充BitmapData为空白 Canvas 对象提供强大的接口。可以用作 Sprite 纹理RenderTexture一种特殊的纹理,您可以非常快速地绘制 SpritesText

属性说明Text使用系统字体或 Web 字体显示文本,可选择填充、阴影和描边BitmapText使用位图字体文件的基于纹理的文本对象RetroFont类似于 BitmapText 对象,但使用经典的 sprite 表。每个字符都是固定宽度的Animation

属性Via说明AnimationManager*sprite*.animations在 Sprite 游戏对象上添加、播放和更新动画Animation动画管理器创建的基础动画对象AnimationParserPhaser 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说明Timetime所有 Phaser 时间相关操作所依赖的核心内部时钟Timertime.create包含一个或多个 TimerEvent 的自定义计时器。可以使用一次或设置为重复TimerEventtime.add单个时间相关的事件对象。属于 Phaser.TimerTilemaps

属性说明Tilemap一张 Tilemap 由一个或多个 TilemapLayer 和关联的图块数据组成。包含用于图块数据操作和 TilemapLayer 生成的方法TilemapLayerTilemap 中的单个图层。继承自 Phaser.Sprite 并负责渲染自身Tileset包含用于由 TilemapLayer 渲染图块的纹理和数据的对象Tile具有相关属性的单个 Tile 对象。地图中的每个图块都存在其中一个TilemapParser用于解析外部加载的地图数据的静态类。通常由 Phaser.Loader 直接调用Math

属性Via说明Mathmath包含大量与数学相关的辅助方法,包括模糊逻辑和插值QuadTree一个独立的四叉树实现。由 Arcade Physics 使用,但也可以直接使用RandomDataGeneratorrnd可播种可重复随机数据生成器Network

属性Via说明Netnet浏览器 URL 和查询字符串相关方法Particles

属性Via说明ParticlesparticlesPhaser 粒子管理器。在游戏循环期间调用并更新任何关联的粒子发射器Emitter基于街机物理的粒子发射器。通过 GameObjectFactory 中的 add.emitter 创建Particle发射器发射的单个粒子对象。扩展 Phaser.SpritePhysics

属性Via说明Physicsphysics核心物理管理器。提供对所有物理子系统的访问Arcade Physics

属性Via说明Arcadephysics.arcadeArcade Physics 处理器。包含碰撞、重叠和移动相关的方法Body*sprite*.body街机物理机构。包含速度、加速度、阻力等相关属性Weapongame.add.weaponArcade Physics 驱动的武器插件,用于轻松管理子弹池Ninja Physics


默认情况下,Ninja Physics 未捆绑在 Phaser 中
属性Via说明Ninjaphysics.ninjaNinja物理处理器。包含碰撞、重叠和移动相关的方法Body*sprite*.bodyNinja物理身体。包含速度、加速度、阻力等相关属性AABBAABB Ninja物理体型Circle圆形Ninja物理身体类型。TileTile Ninja物理身体类型P2 Physics

属性Via说明P2phyiscs.p2P2物理世界。包含碰撞、重叠和移动相关的方法Body*sprite*.bodyP2物理体。包含速度、加速度、阻力等相关属性BodyDebugP2 Body 对象的调试特定版本。呈现出其形状以进行可视化调试Material用于世界响应的 P2 材质,例如摩擦和恢复ContactMaterial用于联系响应的 P2 联系材料CollisionGroupP2碰撞组FixtureListP2 夹具列表处理程序PointProxy负责将 Phaser Game World 代理到 P2 物理值InversePointProxy负责将 Phaser Game World 代理为反转的 P2 物理值Spring一个 P2 弹簧对象RotationalSpringP2 旋转弹簧对象Input

属性Via说明Inputinput输入管理器。负责处理所有输入子系统。还负责启用输入的游戏对象Pointerinput.pointer指针封装了所有与鼠标或触摸相关的输入,无论它是如何生成的。在多点触控系统上,可以同时激活多个指针。在与输入相关的事件中,传递了对相应指针的引用DeviceButtonpointer.leftButton代表鼠标或笔/手写笔上的按钮Keyboardinput.keyboard键盘输入处理程序。侦听与设备相关的事件。也可以创建 Key 对象。KeyKey 对象负责监听特定的 Key。由键盘类创建KeyCodeKeyCode 常量在创建新的 Key 对象时使用Mouseinput.mouse鼠标事件处理程序。侦听与设备相关的事件并将它们传递给活动指针MSPointerinput.mspointerMSPointer 事件处理程序。侦听与设备相关的事件并将它们传递给活动指针Touchinput.touch触摸事件处理程序。侦听与设备相关的事件并将它们传递给活动指针Gamepads

属性Via说明Gamepadinput.gamepad游戏手柄管理器负责管理所有连接到设备的游戏手柄。创建 SinglePad 实例SinglePadinput.gamepad.pad<1,4>代表一个连接的游戏手柄DeviceButton表示 SinglePad 实例上的按钮Tweens

属性Via说明TweenManagertweensTween Manager 创建、更新和销毁所有活动的补间Tween一个补间对象。通过 game.add.tween 创建。由表示补间和任何子补间的 TweenData 对象组成TweenDataTweenData 对象包含与补间相关的所有信息。由 Phaser.Tween 对象创建并属于 Phaser.Tween 对象Easing包含可用于 Tweens 的所有缓动函数的静态类Sound

属性Via说明SoundManagersound声音管理器控制所有声音对象并可以播放、循环、淡入淡出和停止声音Sound声音对象。可直接播放、暂停、停止,并可调节音量AudioSpriteAudio Sprite 是一个 Sound 对象,具有代表音频部分的相关标记数据System

属性Via说明Canvas包含 Canvas 创建和操作方法的静态类。比如添加到dom,设置触摸动作,平滑和图像渲染Devicegame.deviceDevice 类在启动时检查系统功能和设置,并存储它们供以后访问DOM包含 DOM 特定方法的静态类,包括偏移处理、视口校准和边界检查RequestAnimationFramegame.raf为核心游戏更新循环抽象出 RAF 或 setTimeOut 的使用Utils

属性Via说明ArraySetArraySet 是一个 Set 数据结构(项目在集合内必须是唯一的),它也保持顺序ArrayUtils特定于数组的方法,例如 getRandomItem、shuffle、transposeMatrix、rotate 和 numberArrayColorPhaser.Color 是一组辅助颜色操作和转换的静态方法Debuggame.debug显示游戏对象调试信息的方法集合LinkedList一个基本的链表数据结构Utils对象和字符串检查和修改的实用方法。包括getProperty、pad、isPlainObject、extend和mixin
页: [1]
查看完整版本: H5游戏开发之 Phaser