javascript - 如何在phaser中截取游戏div的屏幕截图

标签 javascript screenshot phaser-framework

我现在正在使用此代码,但它返回一个空白的透明图像:

$(document).ready(function(){
    $("#t").click(function() {
        html2canvas(document.querySelector("#bracelet_maker"), 
         { onrendered: function(canvas){ 
            src = canvas.toDataURL();
            window.open(src); } });
    });
});

如果我使用 game.canvas.toDataUrl(); 它会返回黑色图像。

这就是游戏在 #bracelet_maker div 中开始的方式

var game = new Phaser.Game(width,height,Phaser.AUTO,"bracelte_canvas",{
    preload:preload,
    create:create,
    update:update  });

最佳答案

使用Phaser.AUTO将允许 Phaser.WEBGLPhaser.CANVAS根据您的浏览器支持的类型来使用。

如果您切换到Phaser.CANVAS创建 new Phaser.Game 时您应该能够访问 canvas .

例如,在 Phaser 中通过绑定(bind) S 键:

function create() {
    // ...
    var screenshotKey = game.input.keyboard.addKey(Phaser.Keyboard.S);
    screenshotKey.onDown.add(function () { window.open(game.canvas.toDataURL()); 
}

还有 preserveDrawingBuffer 这也应该允许您从 WebGL 捕获,但它需要是 set early on in the process .

var game = new Phaser.Game(800, 600, Phaser.AUTO, '', {
    preload: preload, create: create, update: update
});
game.preserveDrawingBuffer = true;

关于javascript - 如何在phaser中截取游戏div的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44941039/

相关文章:

javascript - P2 物理体在 setRectangle() 调用 phaserJS 后没有发生碰撞

javascript - 如何使用 JavaScript 动态调整 Facebook 评论插件的大小?

javascript - 我如何限制功能-(老虎机游戏)仅进行 5 轮-使用 do/while 循环

ios - 只获取白色屏幕截图

javascript - HTML5 游戏 Phaser.io 让武器向 Sprite 方向开火

javascript - 为什么我在使用 game.load 时得到 "undefined"对应 "load"? (Vue + 移相器)

javascript - CSS z-index 和变换奇怪的 flash

javascript - 为什么我的背景图片在某个元素上没有变化?

Java Wicket 组件到图像

创建位图时 C# 内存不足