phaser刚开始学的时候,还是模模糊糊走了些弯路的,虽然一开始想的是,跟着官网的步骤来就肯定没事,结果官网的坑也是有的。所以把自己学习phaser3时候遇到的一些小坑分享一下,让大家可以借鉴一下。
phaser有2版本和3版本,api区别挺大
一开始还真不知道phaser有两个版本,并且两个版本的api区别还挺大,所以基本上2版本的实例,对于3版本而言,仅仅只有一些参考意义,权当作引子了。另外,官网上只有phaser2的api文档,想要看phaser3的api文档,要去github上面去看,并且也可以从github上面直接全部下载下来,在本地浏览。我后来是全部下载下来了,因为国内访问github网速太感人了,还经常无法访问,所以肯定是下载下来好。phaser3的api文档页面是:phaser3-docs。下载下来之后,在文件夹里找到index.html,点击打开方式使用某个浏览器打开就行了。
phaser3可以使用webpack构建
官方原话:We use Webpack to build Phaser and we take advantage of its conditional build flag feature to handle renderer swapping. If you wish to use Webpack with Phaser then please use our Phaser 3 Project Template as it’s already set-up to handle the build conditions Phaser needs. Recent changes to our build steps mean you should now be able to use any other packager, like Parcel, without any config changes.
所以官方提供了一个webpack的phaser3模板项目,直接clone下来,里面配置都弄好了,我们直接写代码就行。本地启动就用npm start命令。不过这个模板项目是用的javascript,并且使用了javascript的类特性之类的语法糖性质的,因此要确保一些js插件是最新的,不然会提示“特性不支持”或者“为实验性特性”等类似的报错,具体插件怎么设置,大家可以自行百度一下。地址是:phaser3-template-webpack。
国内有个phaser小站,然而年代久远,里面内容都是phaser2版本的
百度搜索里有一个国内的phaser小站,里面有实例,有教程,有论坛,乍看之下以为如获至宝。然而并非如此,这个phaser中文站年代久远,里面所有的内容都是phaser2版本的,与phaser3的兼容性几乎没有。而且多年以前就停止了更新,具体遭遇过什么就不得而知了。反正感觉它当年也是如火如荼的确实想要做好这个phaser中文站的,后来却突然荒废了。从此百度上再也搜不出来类似的phaser1中文论坛或者站点了。虽然是phaser2版本的内容,但是里面的实例代码简单参考一下还是可以的,能够大概的了解phaser的编程思路,也能引导你更方便的在phaser3版本的api文档里找到自己想要的内容。
phaser官网提供了实例的搜索功能,然而大部分都搜不到,要自己多翻一翻
百度搜索里有一个国内的phaser小站,里面有实例,有教程,有论坛,乍看之下以为如获至宝。然而并非如此,这个phaser中文站年代久远,里面所有的内容都是phaser2版本的,与phaser3的兼容性几乎没有。而且多年以前就停止了更新,具体遭遇过什么就不得而知了。反正感觉它当年也是如火如荼的确实想要做好这个phaser中文站的,后来却突然荒废了。从此百度上再也搜不出来类似的phaser中文论坛或者相关站点了。不过那个中文站虽然是phaser2版本的内容,但是里面的实例代码简单参考一下还是可以的,能够大概的了解phaser的编程思路,也能引导你更方便的在phaser3版本的api文档里找到自己想要的内容。
更建议在phaser中使用javascript开发游戏
官方原话:You can code your Phaser games in JavaScript or TypeScript and we’ve Getting Started guides for both. If you’re coming from Flash / AS3 then we’d recommend giving TypeScript a go, otherwise stick with JavaScript.所以如果你是从flash/as3转到phaser来的,那么建议使用typescript来开发,其他的则建议使用javascript。另外我个人认为phaser生态对于javascript的支持更多也更好,实例也全都是用的javascript。文档方面对javascript的支持也较多,如果非要用typescript反而有点麻烦了。不过phaser1是开源的,如果有大佬要自己去研究参透源码,那就不是我这种小白能够理解的了。
phaser官方详细教程是收费的
一开始我以为开源了,啥都不收费呢。后来发现想要更深入的教程,就要付费学习。而且还有相关书籍也是要花钱买的。如果不愿意花钱那就要自己研究自己啃了。不过自己摸索几天,多看看api文档,多写点代码尝试,还是可以在一定程度上参透的。做个像样的小游戏没有问题。只要你绘图技术好,那就更好了哈哈哈。
phaser开发过程中不断热加载游戏,在火狐浏览器可能严重影响电脑性能,谷歌浏览器则没有影响
如果phaser游戏开发过程中,是在火狐浏览器窗口进行不断调试运行的,那么火狐浏览器占用的电脑运存会疯狂增大,把电脑搞得很卡。一开始以为是自己不懂,写的游戏代码有问题导致的性能问题。但是换到谷歌浏览器之后就非常流畅,无论如何都不会导致内存占用急剧增大,电脑更不会卡爆了。虽然我平时更偏好于火狐浏览器,但是从开发phaser游戏的角度来看,谷歌浏览器的优化更好。