Skip to content
Snippets Groups Projects
Select Git revision
  • ac511fd05fe4e52f033ceac51b992de65450da57
  • master default protected
2 results

neko.js

Blame
  • neko.js 5.93 KiB
    // Based on oneko.js: https://github.com/adryd325/oneko.js
    
    (function oneko() {
      const isReducedMotion =
        window.matchMedia(`(prefers-reduced-motion: reduce)`) === true ||
        window.matchMedia(`(prefers-reduced-motion: reduce)`).matches === true;
    
      let movementEnabled = false;
    
      const nekoEl = document.createElement("div");
    
      let nekoPosX = window.innerWidth - 32;
      let nekoPosY = window.innerHeight - 32;
    
      let mousePosX = 0;
      let mousePosY = 0;
    
      let frameCount = 0;
      let idleTime = 0;
      let idleAnimation = null;
      let idleAnimationFrame = 0;
    
      const nekoSpeed = 10;
      const spriteSets = {
        idle: [[-3, -3]],
        alert: [[-7, -3]],
        scratchSelf: [
          [-5, 0],
          [-6, 0],
          [-7, 0],
        ],
        scratchWallN: [
          [0, 0],
          [0, -1],
        ],
        scratchWallS: [
          [-7, -1],
          [-6, -2],
        ],
        scratchWallE: [
          [-2, -2],
          [-2, -3],
        ],
        scratchWallW: [
          [-4, 0],
          [-4, -1],
        ],
        tired: [[-3, -2]],
        sleeping: [
          [-2, 0],
          [-2, -1],
        ],
        N: [
          [-1, -2],
          [-1, -3],
        ],
        NE: [
          [0, -2],
          [0, -3],
        ],
        E: [
          [-3, 0],
          [-3, -1],
        ],
        SE: [
          [-5, -1],
          [-5, -2],
        ],
        S: [
          [-6, -3],