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.
This commit is contained in:
1 parent
c7d09d63d4
commit
67b32fcab3
118 files changed
+16730
No files matched your search
@@ -0,0 +1,21 @@
|
||||
/** Sorteio determinístico (mulberry32). Único ponto de aleatoriedade da lógica do jogo. */
|
||||
|
||||
/** Estado inicial uint32 a partir de uma semente; 0 vira 0x9e3779b9. */
|
||||
export function semear(semente: number): number {
|
||||
const estado = semente >>> 0;
|
||||
return estado === 0 ? 0x9e3779b9 : estado;
|
||||
}
|
||||
|
||||
/** Avança `p.rng` e devolve um número em [0, 1). */
|
||||
export function sortear(p: { rng: number }): number {
|
||||
p.rng = (p.rng + 0x6d2b79f5) >>> 0;
|
||||
let t = p.rng;
|
||||
t = Math.imul(t ^ (t >>> 15), t | 1);
|
||||
t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
|
||||
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
|
||||
}
|
||||
|
||||
/** Inteiro de 0 a n−1. */
|
||||
export function sortearInteiro(p: { rng: number }, n: number): number {
|
||||
return Math.floor(sortear(p) * n);
|
||||
}
|
||||
Reference in new issue
Block a user