skyfish-qc / pixi-miniprogram

一个可运行于微信小程序的PIXI引擎,通过模拟window环境,有些功能小程序无法模拟,就直接修改了PIXI引擎代码,最终使得PIXI引擎正常运行在小程序上

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

修复无法使用PIXI.Text

lqloveball opened this issue · comments

// 在编译文件 index.js 绑定canvas2d
window.canvas2d=canvas2d;

然后修改 TextMetrics canvas的索引

/**
	 * Cached canvas element for measuring text
	 *
	 * @memberof PIXI.TextMetrics
	 * @type {HTMLCanvasElement}
	 * @private
	 */
	TextMetrics._canvas = window.canvas2d;

	/**
	 * Cache for context to use.
	 *
	 * @memberof PIXI.TextMetrics
	 * @type {CanvasRenderingContext2D}
	 * @private
	 */
	TextMetrics._context =  window.canvas2d.getContext('2d');

实测解决

真机还存在问题

你这个还是没传那个canvas2d元素,canvas2d那个记得是要2d类型的,不能是webgl类型的

还有正如readme那里提到,这个不支持动态字体,因为动态字体是需要动态创建canvas的,而小程序不能动态创建canvas,如果只有一个位置,是可以传canvas2d进去,但如果有很多地方的,那个只有一个canvas2d,就只能显示一个字了,更新了其它地方的也一起更新

这个后面可能会重写一下这个text逻辑,使得只有一个canvas2d也能使用,目前还是建议使用bitmapfont