ngx-screen-saver
Version:
Screen saver component for Angular.
34 lines • 3.81 kB
JavaScript
export const dvd = (p5) => {
const width = p5.windowWidth;
const height = p5.windowHeight;
let dvdLogo;
let posX = 300;
let posY = 100;
let velX;
let velY;
// PRELOAD
p5.preload = () => {
dvdLogo = p5.loadImage('assets/ngx-screen-saver/dvd_logo.png');
};
// SETUP
p5.setup = () => {
p5.createCanvas(width, height).addClass('ngx-screen-saver');
p5.background(0);
velX = 7;
velY = 5;
};
// DRAW
p5.draw = () => {
p5.background(0);
p5.image(dvdLogo, posX, posY);
posX = posX + velX;
posY = posY + velY;
if (posX + dvdLogo.width >= width || posX <= 0) {
velX = -velX;
}
if (posY + dvdLogo.height >= height || posY <= 0) {
velY = -velY;
}
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHZkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcmVlbi1zYXZlci9zcmMvbGliL3NjcmVlbi1zYXZlcnMvZHZkL2R2ZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFNLEVBQUUsRUFBRTtJQUM1QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO0lBQzdCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7SUFFL0IsSUFBSSxPQUFpQixDQUFDO0lBRXRCLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNmLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNmLElBQUksSUFBWSxDQUFDO0lBQ2pCLElBQUksSUFBWSxDQUFDO0lBRWpCLFVBQVU7SUFDVixFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtRQUNoQixPQUFPLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQ2pFLENBQUMsQ0FBQztJQUVGLFFBQVE7SUFDUixFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRTtRQUNkLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzVELEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakIsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNULElBQUksR0FBRyxDQUFDLENBQUM7SUFDWCxDQUFDLENBQUM7SUFFRixPQUFPO0lBQ1AsRUFBRSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUU7UUFDYixFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU5QixJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztRQUVuQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFO1lBQzlDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQztTQUNkO1FBRUQsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRTtZQUNoRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUM7U0FDZDtJQUNILENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwNSBmcm9tICdwNSc7XHJcblxyXG5leHBvcnQgY29uc3QgZHZkID0gKHA1OiBwNSkgPT4ge1xyXG4gIGNvbnN0IHdpZHRoID0gcDUud2luZG93V2lkdGg7XHJcbiAgY29uc3QgaGVpZ2h0ID0gcDUud2luZG93SGVpZ2h0O1xyXG5cclxuICBsZXQgZHZkTG9nbzogcDUuSW1hZ2U7XHJcblxyXG4gIGxldCBwb3NYID0gMzAwO1xyXG4gIGxldCBwb3NZID0gMTAwO1xyXG4gIGxldCB2ZWxYOiBudW1iZXI7XHJcbiAgbGV0IHZlbFk6IG51bWJlcjtcclxuXHJcbiAgLy8gUFJFTE9BRFxyXG4gIHA1LnByZWxvYWQgPSAoKSA9PiB7XHJcbiAgICBkdmRMb2dvID0gcDUubG9hZEltYWdlKCdhc3NldHMvbmd4LXNjcmVlbi1zYXZlci9kdmRfbG9nby5wbmcnKTtcclxuICB9O1xyXG5cclxuICAvLyBTRVRVUFxyXG4gIHA1LnNldHVwID0gKCkgPT4ge1xyXG4gICAgcDUuY3JlYXRlQ2FudmFzKHdpZHRoLCBoZWlnaHQpLmFkZENsYXNzKCduZ3gtc2NyZWVuLXNhdmVyJyk7XHJcbiAgICBwNS5iYWNrZ3JvdW5kKDApO1xyXG5cclxuICAgIHZlbFggPSA3O1xyXG4gICAgdmVsWSA9IDU7XHJcbiAgfTtcclxuXHJcbiAgLy8gRFJBV1xyXG4gIHA1LmRyYXcgPSAoKSA9PiB7XHJcbiAgICBwNS5iYWNrZ3JvdW5kKDApO1xyXG4gICAgcDUuaW1hZ2UoZHZkTG9nbywgcG9zWCwgcG9zWSk7XHJcblxyXG4gICAgcG9zWCA9IHBvc1ggKyB2ZWxYO1xyXG4gICAgcG9zWSA9IHBvc1kgKyB2ZWxZO1xyXG5cclxuICAgIGlmIChwb3NYICsgZHZkTG9nby53aWR0aCA+PSB3aWR0aCB8fCBwb3NYIDw9IDApIHtcclxuICAgICAgdmVsWCA9IC12ZWxYO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwb3NZICsgZHZkTG9nby5oZWlnaHQgPj0gaGVpZ2h0IHx8IHBvc1kgPD0gMCkge1xyXG4gICAgICB2ZWxZID0gLXZlbFk7XHJcbiAgICB9XHJcbiAgfTtcclxufTtcclxuIl19