我的理解是,最好使用bitmapData对象来添加图形,您将使用物理引擎来操作这些图形。
所以,我一直试图用bitmapData对象来画圆圈。
我尝试过两种方法,它们由于不同的原因都失败了。
1)我遵循了这个例子:http://phaser.io/exa...from-bitmapdata
用圆圈代替rect作为文档:http://phaser.io/doc...ta.html#circle
var bmd = game.add.bitmapData(128,128);
// draw to the canvas context like normal
bmd.ctx.beginPath();
bmd.ctx.circle(0,0,128);
bmd.ctx.fillStyle = '#ff0000';
bmd.ctx.fill();示例中演示的rect方法对我来说很好,但是当我将它改为循环时,它会出现一个错误:未定义不是一个函数,在这一行上: bmd.ctx.circle(0,0,128);
而且,这让我感到困惑,因为,循环和rect都被列为比特映射数据的公共方法,而不是ctx方法。
我也不明白bitmapData.context和bitmapData.ctx之间的区别
2)我在网上找到了一个示例,对此进行了编码:
bmd.ctx.fillStyle = '#999999';
bmd.ctx.beginPath();
bmd.ctx.arc(25, 25, 100, 0, 2*Math.PI, true);
bmd.ctx.fill();这只产生四分之一的圆,尽管被设置为一个完整圆的弧度。
发布于 2015-04-07 18:25:14
1)
2)您只看到四分之一的原因是您将bitmapData大小设置得太小(128x128),不适合您要求Phaser绘制的圆圈。
你把圆心放置在{x:25,y:25},并画一个100 at半径,从而走出空间。
降低半径,将中心放置在所创建的bitmapData上下文的中心,您将看到正确的结果:
bmd.ctx.arc(bmd.width / 2, bmd.height / 2, 50, 0, 2 * Math.PI, true); https://stackoverflow.com/questions/29382710
复制相似问题