收藏
回答

小游戏Canvas 2D不支持Shadow和Gradient

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小游戏 需求 canvas 2d 客户端 6.6.6 2.0.0

根据官方教程的描述,小游戏的canvas2D支持了大部分属性:

https://developers.weixin.qq.com/minigame/dev/document/render/canvas/RenderingContext.html

2d 接口支持情况

iOS/Android 不支持的 2d 属性和接口

  • globalCompositeOperation 不支持以下值: source-in source-out destination-atop lighter copy。如果使用,不会报错,但是将得到与预期不符的结果。

  • isPointInPath



经过测试,在我们的游戏里,Shadow和Gradient相关的功能,在开发工具的模拟器环境下一切正常,可是一旦进入真机环境(ios/android),就都没法工作了。程序并不报错,但就是没有效果。具体是下面这些属性


- shadowBlur

- shadowColor

- shadowOffsetX

- shadowOffsetY

- createLinearGradient



望改进,不然一些好的效果实现起来比较费劲



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

2 个回答

  • June
    June
    2018-05-21

    反馈已收到,我们考虑一下。

    2018-05-21
    赞同
    回复 4
    • 刘昌涛
      刘昌涛
      2018-05-21
      可以考虑支持一下
      2018-05-21
      回复
    • cc
      cc
      2018-05-22回复刘昌涛
      麻烦附上可运行的demo
      2018-05-22
      回复
    • 刘昌涛
      刘昌涛
      2018-05-22回复cc
      wechatide://minicode/VoW7SAmd6SZY
      2018-05-22
      回复
    • 刘昌涛
      刘昌涛
      2018-06-01回复cc

      最近我们又用到了绘制多边形的功能,大致的代码如下:


      ctx.fillstyle = 'rgb(255, 0, 0)'

      ctx.beginPath()

      ctx.moveTo(x1, y1)

      ctx.lineTo(x2, y2)

      ctx.lineTo(x3, y3)

      ctx.fill()


      但是,在手机上(ios/android)都没能正确的显示颜色(红色),而始终是黑色,同样在模拟器上没有问题


      另外关于fillstyle的颜色设置,用rgb(r,g,b)和rgba(r,g,b,255)的表现似乎并不一样。

      2018-06-01
      回复
  • 龙
    2018-08-07

    确实是这样,貌似一些透明度 细微粒度的效果都不支持的,只能画一些简单粗暴的图形

    2018-08-07
    赞同
    回复