Nuvi.brincaVer os 1050 jogos
Para plataformas parceiras

Integração e cobrança

A Nuvi.brinca é uma biblioteca de 1050 jogos (15 motores × 14 temas × 5 níveis) pensada para crianças neurodivergentes. Ela roda 100% no navegador, não guarda dados de criança nenhuma e devolve os resultados para a sua plataforma decidir o que salvar.

Passo 1

Embutir o jogo (iframe)

Cada jogo tem uma URL estável. Adicione ?embed=1 para esconder o cabeçalho e deixar só o jogo na tela.

<iframe
  src="https://nuvi-brinca.lovable.app/jogo/sons-iniciais-animais-n1?embed=1"
  title="Sons Iniciais · Animais"
  allow="autoplay"
  style="width:100%;height:640px;border:0;border-radius:24px"
></iframe>

Passo 2

Receber o resultado (postMessage)

O jogo emite três tipos de mensagem: ready (com o manifesto), event (acertos, erros, dicas e tempo de reação) e complete (a pontuação final de 0 a 100 mais a lista de eventos).

window.addEventListener("message", (e) => {
  const msg = e.data;
  if (!msg || msg.source !== "bia-game") return;

  if (msg.type === "ready")    console.log("manifesto", msg.manifest);
  if (msg.type === "event")    console.log("evento", msg.event);
  if (msg.type === "complete") {
    // msg.slug, msg.score (0-100), msg.events[]
    salvarNaMinhaPlataforma(msg.slug, msg.score, msg.events);
  }
});

Cada evento tem o formato { event_type, payload, response_time_ms }, com event_type em correct, wrong, attempt, hint ou complete. Em produção, valide e.origin antes de confiar na mensagem.

Passo 3

Listar os jogos (API de catálogo)

Uma chamada GET pública, com CORS liberado e sem chave, devolve o catálogo já filtrado por idade, área, tema, motor, nível ou perfil.

GET /api/public/catalogo?idade=6&area=Atenção&limit=20

{
  "total": 42,
  "jogos": [
    {
      "slug": "foco-tranquilo-animais-n2",
      "titulo": "Foco Tranquilo · Animais · Fácil",
      "area": "Atenção",
      "idade": { "min": 5, "max": 10 },
      "diagnosticos": ["tdah", "tea", "tipico"],
      "embed_url": "https://.../jogo/foco-tranquilo-animais-n2?embed=1"
    }
  ]
}

Filtros aceitos: idade, area, tema, motor, nivel (1 a 5), diagnostico (tea, tdah, dislexia, down, tipico), limit e offset.

Passo 4

O que já vem pronto

  • Ilustrações próprias em vetor (sem emoji), alto contraste e traço grosso.
  • Sem tempo de pressão, sem som obrigatório, sem tela piscando.
  • Cinco níveis por jogo, com apoio de leitura nos três primeiros.
  • Nenhum dado da criança é gravado: quem persiste é sempre a sua plataforma.

Na prática

Passo a passo para incluir os jogos na trilha

Sua plataforma continua dona da trilha e do progresso. A Nuvi.brinca só entrega o jogo e devolve o resultado.

  1. Passo 1

    Escolha os jogos da etapa

    Chame GET /api/public/catalogo com os filtros da etapa (idade, área, tema, nível) e guarde o slug de cada jogo escolhido.

  2. Passo 2

    Crie a atividade na sua trilha

    Na sua plataforma, cada atividade da trilha guarda só o slug do jogo (ex.: sons-iniciais-animais-n1) e a ordem dentro da etapa.

  3. Passo 3

    Abra o jogo no iframe

    Quando a criança tocar na atividade, mostre o iframe com /jogo/<slug>?embed=1 — sem cabeçalho, só o jogo.

  4. Passo 4

    Ouça o resultado

    No evento complete do postMessage você recebe slug, score (0–100) e os eventos. Salve na sua base como conclusão da atividade.

  5. Passo 5

    Libere o próximo passo

    Use o score para marcar a atividade como concluída e desbloquear a próxima da trilha (ex.: score ≥ 60 avança, abaixo repete).

// exemplo mínimo dentro de uma etapa da trilha
const atividade = { slug: "sons-iniciais-animais-n1", ordem: 3 };

<iframe src={`https://nuvi-brinca.lovable.app/jogo/${atividade.slug}?embed=1`} />

window.addEventListener("message", (e) => {
  const m = e.data;
  if (m?.source !== "bia-game" || m.type !== "complete") return;
  concluirAtividade(atividade, m.score);      // salva na sua base
  if (m.score >= 60) liberarProximaAtividade();
});

Quer testar agora?

Abra qualquer jogo do catálogo e cole a URL com ?embed=1 na sua plataforma.

Explorar o catálogo