收藏
回答

小游戏问题,背景在真机显示不出来,cxt.draw找不到

游戏引擎 AppID 操作系统 微信版本 基础库版本
2d wx07c1682b6f7f7a82 Android 7.0.4 wechat lib 2.6.6

/**

* 上层画布

*/

const canvas = wx.createCanvas()

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




//画背景

context.fillStyle = "#90d7ec";

context.fillRect(0, 0, DeviceInfo.windowWidth, DeviceInfo.windowHeight)


/**

  * 双层for循环开始绘制气泡

  */

for (let i = 0; i < column_count; i++) {

    let start_y = i * image_width + (i + 1) * space + y;

    for (let j = 0; j < row_count; j++) {

        let start_x = j * image_width + (j + 1) * space;

        let bubble = new Bubble(context, false, start_x, start_y)

        bubbles.push(bubble)

    }

}


我的代码逻辑很简单,绘制就两个地方用到,第一次先绘制背景,也就是fillRect,然后在for循环里绘制气泡,也就是drawImage


/**

  * 往画布上画具体的内容

  */

canvas() {

    let image = wx.createImage();

    image.src = this.broken ? destroy_img : perfect_img;

    image.onload = () => {

        this.context.drawImage(image, this.x, this.y,image.width,image.height,)

    }

}


模拟器里表现完美,但是到真机上背景就是一片黑


模拟器:



真机:




另外,api文档上明确的说有cxt.draw()这个方法,为什么我调用一直报错,说没有这个方法,是文档没有更新还是我使用有问题,麻烦帮我看一下,真的太感谢了。

回答关注问题邀请回答
收藏

1 个回答

  • Axe
    Axe
    2019-04-26

    遇到同样问题, 目前看可能是异步onload,或者settimeout后调用的canvas绘制会清空(遮挡?)之前绘制的内容

    2019-04-26
    有用
    回复 1
    • 2019-04-26

      不知道啊,draw(true/false) 和 save restore 两者的区别也傻傻的分不清啊 哈哈

      2019-04-26
      回复
登录 后发表内容