Files
portifolio-evandrodevbr/lib/jogo/alavanca.ts
T
evandro 67b32fcab3
CI / audit (push) Successful in 10m48s
CI / verify (push) Successful in 19m2s
CI / deploy (push) Successful in 2m14s
CI / e2e (push) Failing after 36m15s
feat(jogo): expediente dos mortos, jogo de zumbis em primeira pessoa
Etapa 1 inteira (logica com 100% de cobertura, cena 3D, toque, sons, bancada de desempenho, e2e) e a base da etapa 2 (mapa novo no Tiled, texturas, imagens dos itens, sons conferidos, golpe recortado e medido). Pagina /jogo fora do menu e do sitemap ate a medicao no celular.
2026-11-10 19:37:10 -03:00

15 lines
416 B
TypeScript

/** Deslocamento do dedo em pixels (dy cresce para baixo) em [direita, frente], de -1 a 1. */
const ZONA_MORTA = 0.12;
export function alavanca(
dx: number,
dy: number,
raio: number,
): [number, number] {
const comprimento = Math.hypot(dx, dy) / raio;
if (comprimento < ZONA_MORTA) return [0, 0];
const escala = Math.min(1, comprimento) / comprimento / raio;
return [dx * escala, 0 - dy * escala];
}