问答详情
源自:2-1 绘制背景

函数的调用

为什么我尝试不调用gameloop 把drawBackground放在game或者init里调用都不会显示背景 只有放在gameloop里用game调用才会显示背景

提问者:也不想你难过 2018-09-14 10:19

个回答

  • tinypocket
    2018-09-18 16:20:11
    已采纳

    bgPic.src = "./src/background.jpg";

    上面代码执行后开始加载图片,加载成功需要一点点时间,图片还没完全加载好,就执行了你init里的drawBackground方法,所以无法绘图(把该方法放到setTimeout里延迟一点时间调用你可以看到能绘制图片)

    另外,如果你把gameloop里window.requestAnimFrame这行注释掉不重复调用drawBackground画背景的话,也是无法显示图片,

    所以,图片显示不显示,和放game或init里没有关系,主要看画图时图片是否已经加载完成,

    个人理解,不知道是否正确。

  • 哈敏恩
    2018-09-21 16:19:44

    bgPic.src = './src/background.jpg';

    bgPic.onload = drawBackground;