A browser source overlay for winter vibes for your Live Streams or Videos
1import Config from "./config";
2import { drawSprite } from "./sprites";
3
4/**
5 * @returns {Plow}
6 */
7export function createPlow() {
8 return {
9 x: Config.plow.direction === "left" ? Config.canvas.width : -88,
10 y: Config.canvas.height - 56,
11 speed: Config.plow.speed,
12 direction: Config.plow.direction,
13 height: 56,
14 width: 88,
15 };
16}
17
18/**
19 * @param {Plow} plow
20 * @param {number} delta
21 */
22export function movePlow(plow, delta) {
23 if (plow.direction === "left") {
24 plow.x -= plow.speed * delta;
25 } else {
26 plow.x += plow.speed * delta;
27 }
28}
29
30/**
31 * @param {Plow} plow
32 * @param {CanvasRenderingContext2D} ctx
33 */
34export function drawPlow(plow, ctx) {
35 drawSprite(ctx, 0, 0, 44, 28, plow.x, plow.y, plow.width, plow.height);
36}
37
38/** @param {Plow} plow */
39export function plowDone(plow) {
40 return plow.direction === "left"
41 ? plow.x + plow.width < 0
42 : plow.x > Config.canvas.width;
43}