facebook小游戏分享的时候要传图片的base64码这个参数,有时需求是要截屏分享,让我们一起探索如何截屏吧。
何时截屏
我们要在游戏渲染完一次后截屏,cocos creator 提供了cc.Director.EVENT_AFTER_DRAW
事件,这个事件是在渲染过程之后所触发的事件。由于我们只要触发一次截屏,只需要监听一次事件。
cc.director.once(cc.Director.EVENT_AFTER_DRAW, () => {
//此处开始执行截屏
});
获取游戏canvas
游戏的画布可以通过cc.game.canvas
获取,再调用canvas.toDataURL("image/png")
就可以获取整个游戏屏幕的base64码了。
const canvas = cc.game.canvas;
const base64 = canvas.toDataURL("image/png");
截取所需区域
有时我们不需要整个屏幕的,而是要截取其中的一部分。这时我们可以通过创建新的const new_canvas = document.createElement('canvas')
,把旧的canvas
的图切一部分放在新的new_canvas
上,再调用new_canvas.toDataURL("image/png")
,获取新的base64码。
[外链图片转存失败