TypeScript是非常适合写游戏的,原因在于游戏引擎对接口参数都有非常严格的类型要求,在原本JavaScript的模式下,对类型的“编程心理约束”实际上是非常弱的,在自己的项目经验中,记得一次写BitmapText的类型时,无意间使用了数字类型,而解释器根本不可能报错,又不可能没有编译器排错,所以导致自己花了半小时的时间找到这个错误,当然根本原因,在与,我对PIXI的BitmapText这个类本身了解程度不高,第一次使用,所以我认为如果在TypeScript模式下,在编译状态就会报错:”我传入的数据类型是Number,而类的接口是String”,废话少说,我们尝试一下在TypeScript的环境下,如何为PIXI添加物理引擎。
首先我们先创建DOM结构
1 |
|
然后,你需要为您添加的第三方库添加typescript的声明文件,假设,你已经为你的项目作了npm init 的初始化,然后您该继续依次为这个四个文件添加声明文件1
2
3npm install @types/jquery
npm install @types/pixi.js
npm install @types/matter-js
在结构设计上,我采用的是将图形渲染与物理引擎分开成两个完全独立的作用域,目的是以免变量污染,同时也利于测试状态与上线状态的切换,但是需要将物理引擎的world暴露在一个大的作用域中,目的是为了将图形的对象渲染到物理引擎中,简单看看构造
1 | window.onload = init; |
接下来,我们就开始写pixi
1 | function pixi(){ |
现在,就已经在TS中,为PIXI添加了物理引擎,具体的DEMO,我已经上传到GitHub中,可以下载来看看,本人很喜欢PIXI这款引擎,速度快是其一,重要的是,它并不热衷于高全方位的解决方案,而是仅仅专注渲染引擎,于是,在WEBGL2D领域,PIXI是目前最顶级的引擎,之于Phaser,哪个基于PIXI的全面解决方案,大量的工厂方法,显得好臃肿,而PIXI这种面向对象的最直接的引擎,才是可以更高度定制方案的首选引擎。