0

我正在使用 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';

“新的 [KEYWORDS]”是填充或绘制文本/组件/图像的功能。请帮忙!

4

1 回答 1

0

为什么不从后面绘制所有内容,即先绘制游戏背景,然后绘制文本,然后在最终玩家和所有游戏对象处绘制?

但是,如果您确实想像现在一样绘制所有内容,然后尝试在绘制之前更改全局复合操作,则不清楚 new Background() 是否真的会从您的代码中绘制背景。这是一篇关于全局复合操作的文章: https ://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation

于 2020-02-01T19:13:15.190 回答