Phaser位图到图像

时间:2016-04-01 02:21:20

标签: bitmap phaser-framework

是否可以在Phaser中用位图创建图像?

我想要做的是将精灵变形/重塑为梯形。

  1. 加载sprite atlas
  2. 将精灵添加到画布
  3. 将精灵重绘为位图数据
  4. 重绘位图数据以转换为梯形 使用以下功能:

    /**
     * Created by Ken Fyrstenberg / Epistemex
     * License: CC3.0-Attr.
     * 
     */
    
    function drawTrapezoid(ctx, img, x, y, w, h, factor) {
        var startPoint = x + w * 0.5 * (factor * 0.01),
                xi, yi, scale = img.height / h,
                startLine = y,
                endLine = y + h;
    
        for(; y < endLine; y++) {
    
            xi = interpolate(startPoint, y, x, endLine, (y - startLine) / h);
            yi = (y * scale + 0.5) | 0;
    
            ctx.drawImage(img, 0, yi, img.width, 1, xi, y, w - xi * 2, 1);
        }
    
        function interpolate(x1, y1, x2, y2, t) {
            return x1 + (x2 - x1) * t;
        }
    }
    
  5. 问题是这个,函数使用图像重绘。我只有位图数据。 是否可以从像bitmapdata.generateImage();那样的位图数据创建图像?

1 个答案:

答案 0 :(得分:0)

var image = game.add.image(0, 0, bitmapdata); // x, y, key for the image

这很简单。如果你想要一个精灵而不是一个图像,也是如此:game.add.sprite(0, 0, bitmapdata)