我想要做這個動畫 - 海水中的水位上升吞沒了有小坑的小山。當水消退時,它的一些留在口袋裏,再次當水位上升時,它全部成爲一個。這部動畫無限期地繼續。現在我已經嘗試過使用兩種方法來做這件事,HTML5與全局複合操作的形狀重疊
1)用海水中的水流繪製並清除池中的水。 ctx.bezierCurveTo(x1,y1,x2,y2,end_x,end_y); 我用水流改變了第一個和第二個控制點,使底座從小平變爲球形,反之亦然。但不光滑,第二個坑有不規則的基地,所以不可能。
2)我將所需的口袋裝滿了水,並且使用不透明度進行玩耍,以使淹沒時口袋裏的水與海水混合。這種方法再一次沒有給出光滑的外觀。
下面是它應該是什麼樣子:
基礎圖像是帆布的背景,我只是要控制水流。
請建議該怎麼做。
我有一個山的背景圖像,所以它只是海水和坑水,都是半透明的。代碼流 - 1)ctx.globalCompositeOperation =「source-out」; 2)畫海水 - 上升和下降3)坑水。組成的條件都不匹配,都是混合形成深色或在場景中提供透明的洞。 – user3275442
啊......我明白了。如果您的圖紙縮小了alpha(不透明度),則合成將使用縮小的alpha進行混合。結果是你得到的混色。解決方法:您需要將縮小的alpha顏色簡化爲具有100%alpha的等效顏色。 – markE
你能解釋一下嗎? – user3275442