Cordova+Phaser 简易APP开发日记(一)

这个年代, 想要开发简单的手机 APP, 需要根据你的定位选择合适的技术.

原生代码成本太高, iOS 上的 Objective-C 语法奇特, Android 上的 Java 也不是一般的 Java.

一些跨平台的解决方案扩展空间够了, 比如 Unity, 比如 Unreal, 但是这些都要你从零开始去学习他们的工具链.

有没有一种技术可以充分利用现有的技术积累, 开源, 并且能够将不同平台之间的沟壑填平的方法呢?

我的选择是 CordovaPhaser, 也就是当下炒的火热的 Hybrid app.

Cordova 是一个无头浏览器外壳, 启动时会用内嵌的 WebView 运行你的 HTML 代码, 同时使用 Hook 通过插件的形式在 JS 和操作系统之间建立一个桥梁, 应用的核心内容就是 HTML/JS/CSS 这些常规的网站开发技术. Cordova 是基于 Node.js 的 Npm 包, 整个工具链和平常开发网站时所用到的工具同属一个生态系统, Cordova 针对不同平台建立原生的项目文件夹, iOS 项目可以用 XCode 打开, Android 项目可以导入 Android Studio, 可以按需增加平台, 编译过程是在本地进行的, 所以开发环境要满足编译条件才行, 比如要编译 iOS 项目就必须在 OSX 系统下进行.

Phaser 是一个 2D 游戏引擎, 主要面向手机端, 内部的渲染用到了 PIXI.js, 支持加载和缓存图片 精灵 地图 音乐 物理等资源, 支持场景 世界 摄像机 发射器等游戏开发必需的组件. 图像渲染方面采用 WebGL 技术, 平台不支持的情况下使用 Cavans; 音乐部分采用最新的 HTML5 标准 WebAudio 技术, 平台不支持的情况下使用 Audio Tag.

Phaser 对 Cordova 具备最基本的支持, 当 Phaser 发现自己运行在 Cordova 环境下, 它会自动监听 deviceready 事件; 同时对程序进入后台时的 pause 和 resume 事件也做了相应的处理, 自动暂停和恢复游戏.

决定采用这一对组合, 下一步就是要慢慢磨合和适应了.