canvas星空效果,背景图片改为透明(255,255,255,0)后,星星拖的很长怎么办?

问题描述

有一个需求是把这个星空特效背景加一张图片。但是drawImage方法不能像backgroud那样设置图片的位置。思路就只剩下把星空背景改为透明的。但是这个背景我设置为其他颜色都是好好的,一旦设置为透明的就坏了。哪里的原因,怎么办,求解答。

问题出现的环境背景及自己尝试过哪些方法

canvas

https://img4.mukewang.com/5b5d50f300017b7a08000390.jpg

https://img1.mukewang.com/5b5d51020001fbc008000338.jpg

红颜莎娜
浏览 2107回答 1
1回答

慕标琳琳

在drawStars函数里面的if (wap == 0)之前添加下面一行代码:c.clearRect(0, 0, canvas.width, canvas.height)canvas在画之前是不会清除已经存在在画布上的内容的,如果没有手动清除,canvas只会在原先的画布上接着画。当设置的颜色不透明的时候,因为把canvas画布整个图上了一层不透明的颜色,所以画布上原先的东西被盖在下面了,所以看不见,但并不是清除了,所以当设置一个不透明的颜色的时候,原先的内容就显示出来了,也就是所有移动位置上的星星都会显示出来,所以效果就是拉长的线。
打开App,查看更多内容
随时随地看视频慕课网APP