Помогите разобраться с mask в html5 canvas

263
08 мая 2017, 01:49

Кусочек кода:

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();

Пытаюсь сделать маску для героя. Но получается вот такой глюк.

Структура такая:

1) Слой backgorund прописанный в css (его мы видим).

2) Backgorund уровня в html5 canvas там леса, трава под ногами (не отображается).

3) Маска для Hero.

4) Сам Hero.

Ожидание: background c травой и с вырезанным героем.

Реальность: маска работает, но срезает backgorund of canvas.

Похоже, что ctx.globalCompositeOperation="source-in"; распространяется на весь context, а не на добавленные слои. Подскажите, пожалуйста как можно исправить? Может быть надо в отдельном контексте это всё рисовать?

READ ALSO
Печать чека из браузера

Печать чека из браузера

Приветствую всех ! Написал небольшую браузерную программу Point of sale (Точка продаж) на PHP,HTML,JavascriptПроблема при распечатке чеков через POS принтер

432
Как сделать radiobutton для замены строки

Как сделать radiobutton для замены строки

Как сделать радиокнопку которая заменяет определенную строку в скриптеЕсть скрипт при нажатий который заменяет текст, так вот радиокнопка...

349
При выборе опции - свернуть список и отобразить выбранный элемент

При выборе опции - свернуть список и отобразить выбранный элемент

Нужно что бы при выборе одного элемента из списка сам список сворачивался, а элемент стал на место <span>

269