源码论坛公告:本站是一个交流学习建站资源的社区论坛,旨在交流学习源码脚本等资源技术,欢迎大家投稿发言! 【点击此处将锦尚放在桌面

源码论坛,商业源码下载,尽在锦尚中国商业源码论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 49744|回复: 1
打印 上一主题 下一主题

[转载] HTML5游戏框架大军中的一乘轻骑Phaser

[复制链接]

20

主题

434

帖子

289

金币

任意通会员(年费)

积分
778
QQ
跳转到指定楼层
1#
发表于 2015-10-9 22:17:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
:HTML5游戏以其“低门槛、低成本、简单有趣、易于分享”的特点受到了广大玩家的喜爱和业界人士的关注,本文将介绍HTML5游戏框架大军中的一乘轻骑——Phaser。
【编者按】HTML5游戏以其“低门槛、低成本、简单有趣、易于分享”的特点受到了广大玩家的喜爱和业界人士的关注。不论是新手还是企业专业团队,从无到有制作一个游戏并不总是一个好主意,选用适合自己的游戏引擎或者框架才是正确的途径。本文将介绍HTML5游戏框架大军中的一乘轻骑——Phaser。

Phaser简介

Phaser是一个开源HTML5游戏框架,由Photon Storm公司创建,在2011年发布1.0版本后,就进入稳定期,定期更新版本,很多新的功能和修复会快速完成。大约一个月发布一次稳定版——可以在GitHub上查看完整的更新记录。Phaser的设计目标是创建运行在桌面和移动设备网页浏览器上的游戏。近几年,人们越来越关注移动设备网页浏览器的性能,以及快速增长、非常重要的网页游戏领域。Photon Storm公司早在2011年就开始制作游戏工具与游戏,其技术积累,能帮助开发者提供游戏开发中的种种需求,直面游戏开发中的痛点。

Phaser主要特色

朴素的JavaScript编程风格

这听起来好像是一个奇怪的“特性”,但实际上这点相当有吸引力。Phaser内部不使用任何人造的OO风格编程。没有大量的继承链和组件系统,你也不必强迫对象设计为任何固定的类结构。只有简单直接的原型链,JavaScript最自然的使用方式。

这并不意味着你不能以结构化方式创建游戏。这只是意味着它不是强制性的。这也意味着Phaser内部可以轻松地改造。

简单易用的资源加载

Phaser内置的资源加载器可以处理:

精灵表(固定尺寸帧)
纹理图片集(包括Texture Packer、JSON Hash、JSON Array、Flash CS6/CC以及Starling XML格式)
音频文件
数据文件(XML、JSON和文本文件)
JavaScript文件(所以你能部分加载游戏或JS资源)
Tilemaps(CSV和Tiled地图格式)
Bitmap字体
我通常从Flash直接导出纹理图片集到Phaser游戏,并且完全支持修剪空白边缘的图片集。资源可以部分加载、缓存,以及从不同URLs(为了支持CDN)拉取,你只需要一行代码就能将任何精灵变成进度条。

渲染:WebGL和Canvas

Phaser内部使用Pixi.js进行渲染。Pixil是一个专注于Canvas和WebGL非常棒和快速的渲染库。Photon Storm公司宣称将持续资助这个库不断改进和发展。

对于你的游戏,这意味着如果浏览器支持WebGL,那么玩家就会获得更加流畅的游戏体验。WebGL在桌面平台已经非常普遍,但在移动平台还在发展初期,即便如此,这也是HTML5游戏发展的未来,所以支持它非常重要。最新发布的Phaser版本引入了WebGL着色器和过滤支持,并且即将发布的版本将实现法线贴图(normal map),所以你将能使用新工具诸如Sprite Lamp。

音频:网络音频和遗留音频

音频成为HTML游戏的软肋很多年了。仅仅几年前,还面临选择一个单声道高延迟的音频还是根本不使用音频而两难。还好时代变了,Web Audio API来拯救我们了。它支持基于节点的音频,多通道,节点路由和各种效果。毫无疑问,Phaser全面支持Web Audio。

然而,很多设备,尤其是Android设备仍有不支持Web Audio——所以Phaser也支持遗留音频以及使用Audio Sprite:打包一组声音到单个文件,然后使用回放标记跳转到不同的效果。Phaser将在两种方式自带切换,取决于设备的能力,并且也包含自动为你解锁音频自系统,它捕获了许多第一批移动开发者的芳心。

输入:多点触碰,键盘,指针,鼠标

当需要支持桌面和移动平台,有越多的不同数量的潜在输入选项。Phaser支持键盘、鼠标、触摸、MSPointer(目前Pointer在IE11下)以及它们的组合。例如,在Windows Surface设备上,你可以在鼠标和触摸两者之间切换,或同时使用两者。

对于触摸输入,Phaser能处理单点触碰和多点触碰环境。你可以定义多达10个触碰点,并且独立地追踪它们,使用它们的事件来处理Sprite交互,诸如拖拽、轻击和碰撞。

物理、补间动画和粒子

整合进核心库的是ArcadePhysics和ArcadeParticles系统。它们是简单的AABB轻量级库,允许你对任何精灵使用重力和运动,然后进行测试以便用于碰撞和分离。使用基于世界的四叉树有助于最小化碰撞测试,你能通过耗费很少的时间得到相当好的结果。

然而,内置的物理系统不可能适合所有类型的游戏,所以物理系统可以轻易地替换,并且没有物理属性绑定到实际的精灵(而是身体组件),所以可以被替换成诸如Box2D或p2.js。补间系统也被整合进,允许你轻易地补间对象或属性。如果游戏暂停,那么所有补间也将自动暂停,需要时再继续。

插件系统

Phaser的目标是最终稳定下来,并且趋于稳定而均衡,它不太可能涉足修复和浏览器更新之外的其他主题。同时又想要Phaser保持不断增长,为各种游戏提供功能,但是又不至于导致核心库爆炸式膨胀。为此,Photon Storm公司构建了一个插件系统。

Phaser插件可以注册自己到核心框架,在核心游戏循环中进行更新,从而执行各种有用的额外任务。一个极好的例子是最近发布的Photon Storm公司将自己发布插件,同时也期待未来有大量的插件来自社区。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享

0

主题

991

帖子

3

金币

初级会员

Rank: 1

积分
744
QQ
2#
发表于 2020-5-17 21:40:49 | 只看该作者
为了不扰乱会员对源码的测试,有问题咨询右侧客服不要直接回复,否则视为非法信息屏蔽会员ID!
支持你一下下。。
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

锦尚中国源码论坛

聚合标签|锦尚中国,为中国网站设计添动力 ( 鲁ICP备09033200号 ) |网站地图

GMT+8, 2024-4-26 01:05 , Processed in 0.029819 second(s), 17 queries .

带宽由 锦尚数据 提供 专业的数据中心

© 锦尚中国源码论坛 52jscn Inc. 非法入侵必将受到法律制裁 法律顾问:IT法律网 & 褚福省律师 锦尚爱心 版权申诉 版权与免责声明