Javascript 画布上的填充文本始终位于背景后面

Javascript 画布上的填充文本始终位于背景后面,javascript,html,canvas,globalcompositeoperation,Javascript,Html,Canvas,Globalcompositeoperation,我正在使用ctx.globalCompositeOperation='destination over'。尽管文本仍然落后 Game.setup(); ctx = Game.context; if (AllImagesLoaded === true) { loading = false; clearInterval(int); BackgroundsA.push(true); ctx.globalCompositeOperation = 'destinat

我正在使用ctx.globalCompositeOperation='destination over'。尽管文本仍然落后

Game.setup();
  ctx = Game.context;
  if (AllImagesLoaded === true) {
    loading = false;
    clearInterval(int);
    BackgroundsA.push(true);
    ctx.globalCompositeOperation = 'destination-over';
    Interact = new text(window.innerWidth / 2, window.innerHeight / 2 - 200, 'Press F to Interact', 'white', '30px Verdana');
    Sprites.push(new sprite(window.innerWidth / 2 - 275, window.innerHeight / 2 - 315, 'idle_jack/frame_1.PNG', 600, 600, 5));
    Player = new component(window.innerWidth / 2, window.innerHeight / 2 - 100, 'rgba(0, 0, 0, 0)', 50, 150);
    ctx.globalCompositeOperation = 'source-over';
    Backgrounds.push(new background(0, 0, 'Backgrounds/Test/test2.jpg'));
    ctx.globalCompositeOperation = 'destination-over';
“新建[关键字]”是用于填充或绘制文本/组件/图像的功能。
请帮忙

为什么不从后面画所有的东西,即先画游戏的背景,然后是文本,最后是玩家和所有游戏对象

但是,如果您确实希望像现在这样绘制所有内容,然后在绘制之前尝试更改全局合成操作,则不清楚new Background()是否实际绘制代码中的背景。下面是一篇关于全局复合操作的文章:

如果我的代码有点凌乱,很抱歉。您是否尝试过将
目标切换到
源切换到
,或者尝试过先绘制背景,然后再绘制文本?是的,它仍然会做同样的事情。这就是destination over所做的。是的,目标(现有像素)位于新像素(此处为文本)之上.我这样做了,但还是不起作用。我想我尝试了几乎所有的组合,虽然它甚至没有改变任何东西。但是在绘制形状之前尝试更改合成操作,你能告诉我“new background()”的作用吗?