收藏
回答

小游戏 设置为横屏 在iphone 上 canvas 绘制不出来

问题模块 框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
客户端 小游戏 Bug iOS IOS iphone7 plugs 6.7.2

当前bug 在IOS下黑屏 Andorid 上正常


- 当前 Bug 的表现(可附上截图)


小游戏设置为横屏 页面为黑屏


如果设置回竖屏 又可以了 说明代码没问题  因为也没有报错




- 预期表现



- 复现路径

小游戏就一个页面吧


- 提供一个最简复现 Demo

game.json

"deviceOrientation": "landscape",

设置为横屏


在game.js 在IOS下面是绘制不出来的 安卓下可以

var canvas = wx.createCanvas()

var context = canvas.getContext('2d')

context.fillStyle = 'red'

context.fillRect(0, 0, 100, 100)


最后一次编辑于  2018-09-02  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

17 个回答

  • 娇华
    娇华
    2018-09-03

    麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

    2018-09-03
    赞同 11
    回复 9
    • 梅清-Silas
      梅清-Silas
      2018-09-04

      wechatide://minicode/ID1GGbm77L2X  这是代码片段链接

      2018-09-04
      赞同
      回复
    • 娇华
      娇华
      2018-09-04回复梅清-Silas

      你好,提供的代码片段不可用,麻烦重新确认下,谢谢

      2018-09-04
      赞同 11
      回复
    • 梅清-Silas
      梅清-Silas
      2018-09-05回复娇华

      我试着用另一台电脑 的微信开发者工具 打开, 确实是可以的啊

      2018-09-05
      赞同
      回复
    • 梅清-Silas
      梅清-Silas
      2018-09-05回复娇华

      其实随便用canvas 画一下,就可以复现的。

      复现的场景是 Iphone 手机扫开发版二维码(手机上扫码才能复现)


      var canvas = wx.createCanvas()

      var context = canvas.getContext('2d')

      context.fillStyle = 'red'

      context.fillRect(0, 0, 100, 100)


      2018-09-05
      赞同
      回复
    • 梅清-Silas
      梅清-Silas
      2018-09-05回复梅清-Silas

      对了,还要设置为横屏。 竖屏是可以绘制出效果的。

      2018-09-05
      赞同
      回复
    查看更多(4)
  • Link
    Link
    2018-09-05

    屏幕发生旋转的时候会清空画布,需要再画一次,或者在 requestAnimationFrame 回调每次去画。

    2018-09-05
    赞同 11
    回复 5
  • 冷馨
    冷馨
    05-02

    我在魔方游戏3D里面也遇到了这个问题,困扰了好久,其实要解决起来也很简单,主要是IOS设置横屏后刚开始也是竖屏的,导致canvas在适配器里面已经创建成了竖屏的,横过来的时候属性没有对应的变化。感觉这个应该是微信客户端的BUG。所以需要在游戏中重新设置canvas的宽和高。可在IOS上体验:魔方游戏3D

    05-02
    赞同
    回复