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.
15 lines
416 B
TypeScript
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];
|
|
}
|