收藏
回答

canvas画不出来东西

有哪位大神可以帮指出我这个代码哪里有问题吗,就是简单的画个图和填充个矩形,下面是代码,图片是运行结果。(图片和矩形都没画出来)


let i = 0;
const canvas = wx.createCanvas();
const ctx = canvas.getContext("2d");
/**
 * 游戏主函数
 */
export default class Main {
  constructor() {
    ctx.fillStyle = "#ffffff";
    this.img = wx.createImage();
    this.img.src = "images/bg.jpg";
    this.antid = 0;
    this.restart();
   
  } 
  restart(){
    ctx.drawImage(this.img,0,0,500,500,0,0,600,600);
    ctx.fillRect(0,0,60,90);
    if(i++<100){
      console.log("一次"+i);
      this.antid = window.requestAnimationFrame(()=>this.restart(),canvas);
    }
  }
}

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

1 个回答

  • 阿白
    阿白
    2022-06-21
    wx.createCanvas() 
    创建的是离屏画布,离屏画布是在内存里的,不会显示出来。你需要把离屏画布的数据绘制到当前的主画布上。
    

    https://developers.weixin.qq.com/minigame/dev/api/render/canvas/wx.createCanvas.html


    2022-06-21
    有用 1
    回复 4
    • 王某春
      王某春
      2022-06-22
      首次调用创建的是显示在屏幕上的画布,之后调用创建的才是离屏画布啊,我这不是第一次调用吗
      2022-06-22
      回复
    • 王某春
      王某春
      2022-06-22
      谢谢大神 就是你说的原因  找到了 在他默认的weapp-adapter.js文件中 他就调用过了的。。。
      2022-06-22
      回复
    • 阿白
      阿白
      2022-06-23回复王某春
      不客气
      2022-06-23
      回复
    • 破裤子
      破裤子
      2023-04-07
      大佬  安卓局部重绘 其他地方黑屏有解决办法吗  必须全屏重绘吗?
      2023-04-07
      回复
登录 后发表内容