А globalCompositeOperation воздействует на все слои контекста?

378
09 мая 2017, 05:49

Пытаюсь сделать маску для image. Но маска задевает не 2 последних слоя (как нужно), а все слои в контексте.

Почему globalCompositeOperation воздействует на все слои, которые были до этого? Как это можно исправить? Можно ли создать второй контекст, и в него скопировать первый, а потом объединить?

ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(level1, 0, 0);
ctx.save();
ctx.fillRect(0,0,mask.width,mask.height);
ctx.globalCompositeOperation="source-in";
ctx.drawImage(hero,0,0);
ctx.restore();

По текущему коду, маска и player работают только на общих слоях. А level background распознается как маска 2. Что в корне неверно.

READ ALSO
Js, численное преобразование в объектах

Js, численное преобразование в объектах

ЗдравствуйтеИзучаю Js и остановился на одном моменте не могу понять об численном преобразовании объектов

249
Как при нажатии на одну кнопку активировать обе?

Как при нажатии на одну кнопку активировать обе?

ЗдравствуйтеНа сайте есть два поля и две кнопки

315
Искусственный интеллект [требует правки]

Искусственный интеллект [требует правки]

Есть ли JavaScript на искусственный интеллект?

193