从Phaser中的位图数据加载精灵表

Loading spritesheet from bitmapdata in Phaser

本文关键字:加载 精灵 数据 位图 Phaser      更新时间:2023-09-26

我试图使用BitmapData构建一个图像,并将该图像用作精灵表,但我认为我缺少了一些东西。

我在我的预加载中这样做。。。

oBitmapData = game.add.bitmapData(tileWidth * 2, tileHeight);
oBitmapData.ctx.fillStyle = 'blue';
oBitmapData.ctx.fillRect(0,0,tileWidth, tileHeight);
oBitmapData.ctx.fillStyle = 'red';
oBitmapData.ctx.fillRect(tileWidth,0,tileWidth, tileHeight);
oSpriteSheet = game.load.spritesheet(tiles[key].name + 'Sheet', oBitmapData, tileWidth, tileHeight);

然后在其他地方。。。

game.add.sprite(x, y, tiles[key].name + 'Sheet', 0, tilesGroup);

我在运行代码时得到以下错误

未捕获类型错误:url.match不是函数

有人能指引我朝正确的方向走吗?

将位图数据作为精灵表添加到相位器:

game.cache.addSpriteSheet('key',null,bitmapdata.canvas, framewidth, frameheight);

spritesheet()函数只能获取url图像,而不能获取位图数据对象,请参阅文档,这会导致您的错误。

至少根据这个论坛的帖子,框架AFAIK不支持从位图数据创建精灵表。