fillText на холсте продолжает идти за фоном - PullRequest
0 голосов
/ 01 февраля 2020

Я использую 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';

«Новые [КЛЮЧЕВЫЕ СЛОВА]» - это функции для заполнения или рисования текста / компонентов / изображений. Пожалуйста, помогите!

1 Ответ

0 голосов
/ 01 февраля 2020

Почему бы вам не нарисовать все сзади, то есть сначала нарисовать фоны игры, затем текст и конечного игрока, а также все игровые объекты?

Однако, если вы действительно хотите нарисовать все как вы сейчас пытаетесь, затем попробуйте изменить глобальную составную операцию непосредственно перед рисованием, не ясно, будет ли новый Background () на самом деле рисовать фон или нет из вашего кода. Вот статья о глобальной составной операции: https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation

...