(一)PhaserJS 简介
PhaserJs是一款专门用于桌面及移动HTML 2D游戏开发的开源免费框架,提供JavaScript和TypeScript双重支持,内置游戏对象的物理属性,采用Pixi.js引擎以加快Canvas和WebGL渲染,基于浏览器支持可自由切换。完全支持Web音频,支持多点触控、键盘、鼠标及MSPointer事件。快速、免费、易于维护,使用Phaser来开发2D小游戏的优势显而易见。
(二)营销游戏介绍
游戏概括:长按购物车,左右拖动接住从天而降的产品,手越快,得分越高,赢取礼包机会越大
针对12 • 8唯品会周年庆,运营公众号推出一个营销页面,来引导促进平台用户消费。这种h5营销是很多公众号运营人员选择的营销方式。怎样引导促进平台用户,不仅考验方案策划者的idea及设计人员设计吸引眼球的作品,也是考验作为前端开发的我们,如何高效还原设计作品,提高整个页面的性能。特别是对于游戏、动画,性能体验至关重要。
(三)游戏部分截图
(四)关键代码
1,实例化game对象
Phaser.Game函数参数解释:
Phaser.Game(width, height, renderer, parent, state, transparent, antialias, physicsConfig)
width:游戏宽度,即渲染游戏Canvas画布的宽度;
height:游戏高度,即渲染游戏Canvas画布的高度;
renderer:渲染游戏方式,Phaser.CANVAS 为使用html5画布,Phaser.WEBGL 为使用性能更加好的WebGL来渲染,Phaser.AUTO为自动侦测,如果浏览器支持WebGL则使用WebGL,否则使用Canvas;
parent:放置canvas的父元素,既可以为元素id,也可以为dom本身;
state:即游戏用到的各种场景,可以为js对象,也可以是函数,只要包含preload、create、update这其中的任何一个;
transparent:是否使用透明的Canvas背景;
antialias:抗锯齿,默认为true;
physicsConfig:游戏物理系统配置参数
2,创建各种场景,即state
备注:WI = window.innerWidth;HI = window.innerHeight; rateX = WI /750; rateY = HI/1218(适配手机)
preload:用来加载资源,是最先会被执行的
create:初始化以及构建场景,等到preload执行完毕才会被执行
update:更新函数,会在游戏的每一帧都来执行,以此来创造一个动态的游戏
(五)遗留问题
因项目时间紧张,没有很深入研究过PhaserJs,所以在最后发布生产,存在遗留问题。
整个Canvas画布,图片显示模糊,即使已经设置抗锯齿:antialias:true,但仍图片不清晰。
如有知道解决方法的朋友,欢迎交流。