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