A browser source overlay for winter vibes for your Live Streams or Videos
1import Config from "./config.js";
2
3/**
4 * @returns {Snowflake}
5 */
6export function createSnowflake() {
7 return {
8 x: Math.floor(Math.random() * Config.canvas.width),
9 y: -1,
10 speed:
11 Math.random() * (Config.snow.minSpeed - Config.snow.maxSpeed) +
12 Config.snow.maxSpeed,
13 size: Math.floor(
14 Math.random() * (Config.snow.minSize - Config.snow.maxSize) +
15 Config.snow.maxSize,
16 ),
17 };
18}
19
20/**
21 * @param {Object} snowflake
22 * @param {number} snowflake.x
23 * @param {number} snowflake.y
24 * @param {number} snowflake.size
25 * @param {CanvasRenderingContext2D} ctx
26 */
27export function drawSnowflake({ x, y, size }, ctx) {
28 ctx.beginPath();
29 ctx.rect(x, y, size, size);
30 ctx.fillStyle = "#fff";
31 ctx.fill();
32}
33
34/**
35 * @param {Snowflake} snowflake
36 * @param {number} delta
37 */
38export function moveSnowflake(snowflake, delta) {
39 snowflake.y += snowflake.speed * delta;
40}