我也是一直打不开,只显示“检查版本资源更新...”,转圈中
刚下载下来,使用3D示例创建完项目就卡住了,卡了1个小时了[图片]
2022-07-05在真机android手机中可以正常执行。
wx.createCamera在模拟器中一直失败wx.createCamera在工具的模拟器中总是创建失败:createCamera:fail ,我的是笔记本电脑lenovo yoga 3,windows10
2020-11-13还是没有修复,华为手机p20上webGL画布贴到2d画布完全无显示,vivo手机只显示了背景,不显示Geometry图形。
安卓下使用2d的上屏canvas绘制webgl的离屏canvas无法显示- 当前 Bug 的表现(可附上截图) 这个问题存在半年多了,也发过很多次贴,之前说修复了,问题还是存在,再次发帖也没回音了,还修不修复这个问题了? - 预期表现 - 复现路径 - 提供一个最简复现 Demo https://developers.weixin.qq.com/community/develop/doc/0002c29bbb00b81e03a71690f51000
2020-09-23我的华为p10 plus(VKY-AL00)真机也是遇到这个问题。有解决方案了吗? vivo和iphone都是OK的。
华为Android必现:离屏webgl 渲染到 2D canvas的黑屏问题- 当前 Bug 的表现(可附上截图) 注:目前只有华为的手机和平板会有这个问题。其他手机:Android,iOS都正常表现。 用离屏的webgl canvas渲染到上屏的canvas 2D环境,只有在华为的android手机上,看不到webgl的内容。 下图中,彩色的三角形和四边形,就是用webgl渲染的;但是看不到; [图片] - 预期表现 [图片] - 复现路径 https://developers.weixin.qq.com/s/L4gO2NmP7d6B - 提供一个最简复现 Demo https://developers.weixin.qq.com/s/L4gO2NmP7d6B 重点代码在最后几行。 [代码]function[代码] [代码]tick() {[代码][代码] [代码][代码]requestAnimationFrame(tick);[代码][代码] [代码][代码]drawScene();[代码][代码] [代码][代码]animate();[代码] [代码] [代码] [代码] // 将3D纹理拷贝到2D纹理上。[代码] [代码] contextMain[代码][代码].clearRect(0 ,0, canvasMain.width, canvasMain.height);[代码][代码][代码] contextMain[代码].drawImage(canvas3D, 0, 0);[代码][代码] [代码][代码][代码]contextMain[代码].fillStyle = [代码][代码]"#FFFFFF"[代码][代码] [代码][代码][代码]contextMain[代码].fillRect(0, 0, 100, 100);[代码][代码]}[代码] let contextMain = undefined; [代码]let canvasMain = undefined;[代码][代码]let canvas3D = undefined;[代码] [代码]function[代码] [代码]webGLStart(canvas) {[代码] [代码] [代码][代码]canvasMain = canvas;[代码] [代码] contextMain= [代码]canvasMain.getContext([代码][代码]'2d'[代码][代码]);[代码][代码] [代码][代码] [代码][代码] [代码][代码] // 创建离屏webgl环境[代码][代码] [代码] [代码][代码]canvas3D = wx.createCanvas();[代码][代码] [代码][代码]canvas3D.width = canvasMain.width;[代码][代码] [代码][代码]canvas3D.height = canvasMain.height[代码] [代码] [代码][代码]initGL(canvas3D);[代码][代码] [代码][代码]initShaders();[代码][代码] [代码][代码]initBuffers();[代码] [代码] [代码][代码]gl.clearColor(0.0, 0.0, 0.0, 1.0);[代码][代码] [代码][代码]gl.enable(gl.DEPTH_TEST);[代码] [代码] [代码][代码]tick();[代码][代码]}[代码] [代码]GameGlobal.alert = (...msg) => console.log([代码][代码]"alert"[代码][代码], ...msg);[代码] [代码]webGLStart(wx.createCanvas());[代码]
2020-09-22我的华为手机跑p20也遇到这个问题,模拟器显示正常,真机不显示。
使用离屏webgl canvas绘制到2d主屏canvas显示异常- 当前 Bug 的表现(可附上截图) 在开发者工具中显示正常,在真机中安卓显示异常,ios可以显示,但是离屏canvas的画面是静止的,正常画面是一个不断旋转的立方体。 之前看过其他开发者发的贴子说在微信7.0.3版本中修复了这个问题。但在实际开发中依然存在这个bug。 下面两张图片是安卓机,微信是7.0.3. [图片][图片] 下图是ios,微信版本也是7.0.3 [图片] - 预期表现 开发者工具上显示正常 [图片] - 复现路径 - 提供一个最简复现 Demo https://github.com/runingYao/webgl_demo_bug
2020-09-22附上代码片段 function eraseZone(x, y,w,h) { x = x * wx.tmGlobal.sysInfo.pixelRatio; y = y * wx.tmGlobal.sysInfo.pixelRatio; w = w * wx.tmGlobal.sysInfo.pixelRatio; h = h * wx.tmGlobal.sysInfo.pixelRatio; wx.tmGlobal.context_bkg.clearRect(x, y, w, h); wx.tmGlobal.context_bkg.drawImage(wx.tmGlobal.canvas_qipan, x, y, w, h, x, y, w, h); } 不知道是clearRect函数清除时多清除了1个像素,还是drawImage函数贴图后画了一个外框。
小游戏在pc上绘图有一个像素偏移[图片] 在微信pc版上运行时,擦除一个box区域,然后再贴图,总是留下一个边框。 在Android,ios手机都没有这个现象。
2020-08-29我也发现,播放回放后,返回了,但是内存好像还是没有释放,导致游戏卡。
GameRecorder游戏回放录制中,进行前后台切换后,一段时间就会提示运行内存不足,请重启小程序IphoneSE iphone7 plus必现,在回放录制过程中,退出到后台,再进入前台。过一段事件后,微信就会提示,“运行内存不足,请重启小程序” 备注:安卓虽然没有出现内存不足的问题,但是一旦进行前后台切换,之后再stop,onStop回调永远不会再出现。所以安卓也有bug 我的代码如下: class GameRecordMgr { constructor() { if (cc.sys.platform === cc.sys.WECHAT_GAME) { var recorder = wx.getGameRecorder() recorder.on('error', (err) => { console.log("GameRecordMgr recorder err", err) }) recorder.on('pause', (res) => { console.log("GameRecordMgr recorder pause", res) }) recorder.on('start', (res) => { console.log("GameRecordMgr recorder start", res) }) recorder.on('resume', (res) => { console.log("GameRecordMgr recorder resume", res) }) recorder.on('abort', (res) => { console.log("GameRecordMgr recorder abort", res) }) recorder.on('error', (res) => { console.log("GameRecordMgr recorder error", res) }) recorder.on('stop', (res) => { console.log("GameRecordMgr recorder stop", res) this.m_stopCallBack && this.m_stopCallBack(res.duration) }) } } startGameRecord() { var bitrate = 1000 if (hf.dataMgr.gameRecordQuality === hf.constants.GAME_RECORD_QUALITY.MID) { bitrate = 2000 } else if (hf.dataMgr.gameRecordQuality === hf.constants.GAME_RECORD_QUALITY.HIGH) { bitrate = 3000 } var recorder = wx.getGameRecorder() recorder.start({ fps: 24, bitrate: bitrate, hookBgm: false, duration: 60 }) console.log("xxxxxxxxxx startGameRecord") } stopGameRecord(cb) { var recorder = wx.getGameRecorder() recorder.stop() this.m_stopCallBack = cb } showShareButton(wxRect, bgm, duration, score) { var timeRange if (duration >= 60 * 1000) { timeRange = [[0, 60 * 1000]] } else { timeRange = [[0, duration]] } console.log("showShareButton", wxRect) if (!this.m_shareBtn) { var shareBtn = wx.createGameRecorderShareButton({ image: "shareVideo.png", icon: "", text: "", style: { left: wxRect.left, top: wxRect.top, height: wxRect.height, backgroundColor: "#fff", iconMarginRight: wxRect.width - 57 }, share: { query: "type=record", bgm: bgm, timeRange: timeRange, title: { template: 'default.score', data: { score: score } }, button: { template: 'default.challenge' } } }) shareBtn.onTap((info) => { console.log("xxxxx share Tap ", info) }) this.m_shareBtn = shareBtn } else { this.m_shareBtn.share = { query: "type=record", bgm: bgm, timeRange: timeRange, title: { template: 'default.score', data: { score: score } }, button: { template: 'default.challenge' } } } this.m_shareBtn.show() } hideShareBtn() { if (this.m_shareBtn) { this.m_shareBtn.hide() } } } module.exports = GameRecordMgr
2020-06-19我的也一样是黑色。
toTempFilePathSync 截图后分享图片为黑色在cocos 3d项目中 利用如下代码截图分享, [图片] 得到的图片居然是黑色的,如下图 [图片] 但在2d项目中是正常的,为何? (以上结果为开发者工具中运行得到的)
2020-06-05我也遇到这样的问题,在wx.onShow中吧离屏画布复制到在屏画布也不行。 但是加一个setTimeout比如200毫秒后复制画布,就可以显示了。奇怪。
关闭小游戏,再次点开,出现黑屏- 当前 Bug 的表现(可附上截图) [图片] - 预期表现 再次进入小程序会黑屏 - 复现路径 请扫描下图小程序码测试 - 提供一个最简复现 Demo [图片]
2020-03-20let sysInfo = wx.getSystemInfoSync(); //console.log("sysInfo:",sysInfo); let canvas = wx.createCanvas(); //像素缩放 canvas.width = sysInfo.screenWidth * sysInfo.pixelRatio; canvas.height = sysInfo.screenHeight * sysInfo.pixelRatio; 如此一来,所有的位置,长宽,都要乘以sysInfo.pixelRatio了。
再发一遍,上一个帖子沉了2天没人回答,微信小游戏Canvas问题注意我说的是小游戏下的上屏Canvas, 我用Canvas中加载外部图片,图片根据设备屏幕需要适配缩放, 要么调用Canvas绘图上下文ctx.scale(计算好的倍率,计算好的倍率),要么: ctx.drawImage(this._IMG, 50,80, this._IMG.width/ 计算好的倍率 , this._IMG.height/ 计算好的倍率); 但这两种方式使用后,都导致了图片失真,锯齿敢很强,从小游戏Demo中飞机大战那个,背景就是用方法2处理的,存在模糊感,不过画面连续在动,且内容丰富,并不会被人注意,如果是问题,明显就虚了,再看看 欢乐坦克大战,就没有锯齿感,请问,正确的实现方式是怎么做的。 [图片] 不要跟我说,我例图中,虚是因为左边的比右边的大一点, 这两个图片都是设备适配后的,真实图片要比这两个缩放后的像素大一倍且高清, 左边的是调用Canvas加载的Img,右边的是 WXML直接<img>直接引入的,css控制适配。
2020-03-15