2026-03-24 13:40:16 +00:00

5.3 KiB
Raw Blame History

< Voltar | Sumário | Adiante >

🖐️ Periférico TOUCH (Sistema de Entrada via ponteiro absoluto)

1. Visão Geral

O periférico TOUCH fornece ao PROMETEU um ponteiro absoluto, baseado em coordenadas de tela, destinado a:

  • interação com UI
  • seleção direta de elementos
  • ações contextuais no cenário
  • mecânicas baseadas em arrasto (drag, slash, trail)

O TOUCH é um periférico de primeira classe, tão válido quanto D-Pad e botões.


2. Princípios de Design

O TOUCH no PROMETEU segue princípios rígidos:

  • Single-touch universal
  • Determinístico
  • Estado por frame
  • Sem gestos
  • Sem aceleração
  • Sem heurística
  • Mesmo comportamento em todas as plataformas

Se um comportamento não pode ser garantido em todas as plataformas, ele não existe no PROMETEU.


3. Modelo Conceitual

O PROMETEU expõe apenas um ponteiro ativo por vez, independentemente de quantos toques físicos o hardware reconheça.

  • Hardware pode detectar multitouch
  • Runtime seleciona apenas um toque ativo
  • A API nunca expõe multitouch

Esse modelo garante:

  • portabilidade total
  • previsibilidade
  • ausência de ambiguidades

4. Espaço de Coordenadas

  • As coordenadas do TOUCH usam o mesmo espaço do framebuffer
  • Resolução: 320×180
  • Origem: canto superior esquerdo (0,0)
  • Intervalos:
    • x ∈ [0, 319]
    • y ∈ [0, 179]

O TOUCH é absoluto:

(x, y) representa a posição exata do contato, sem transformação dinâmica.


5. API do Periférico TOUCH

5.1 Estrutura Exposta

TOUCH:
  present   : bool
  down      : bool
  pressed   : bool
  released  : bool
  x         : int
  y         : int


5.2 Semântica dos Campos

  • present
    • true se o periférico TOUCH está disponível
    • false se não houver touch físico (desktop, hardware sem touch)
  • down
    • true enquanto o ponteiro ativo está pressionado
  • pressed
    • true apenas no frame em que o ponteiro ativo foi capturado
  • released
    • true apenas no frame em que o ponteiro ativo foi liberado
  • x, y
    • posição atual do ponteiro ativo
    • válidas apenas quando down == true

6. Política de Seleção do Ponteiro

Single Pointer Capture Policy

Quando múltiplos toques físicos ocorrem, o PROMETEU aplica a seguinte política:


6.1 Captura Inicial

  1. Se nenhum ponteiro está ativo
  2. E ocorre um novo toque físico
  3. O primeiro toque detectado é capturado
  4. Esse toque se torna o ponteiro ativo

Esse frame gera:

  • pressed = true
  • down = true

6.2 Manutenção da Captura

Enquanto o ponteiro ativo estiver pressionado:

  • Apenas ele é rastreado
  • Todos os outros toques físicos são ignorados
  • x, y seguem apenas o ponteiro ativo

6.3 Liberação

Quando o ponteiro ativo é solto:

  • released = true
  • down = false
  • O sistema entra em estado sem ponteiro ativo

6.4 Recaptura (Regra Importante)

Após a liberação:

  • Toques que já estavam presentes são ignorados
  • Um novo ponteiro só é capturado com um novo evento de toque

Isso evita saltos inesperados do ponteiro e ações acidentais.


7. Comportamentos Deliberadamente NÃO Suportados

O periférico TOUCH não implementa:

Multitouch

Gestos (swipe, pinch, rotate, long-press)

Aceleração ou suavização

Sensibilidade dinâmica

Histórico implícito

Interpretação de intenção

Se um jogo quiser qualquer um desses comportamentos, ele deve:

  • implementar explicitamente
  • usando apenas estado por frame
  • sem suporte implícito do hardware

8. “Sem Gesto” — Definição Formal

O PROMETEU não interpreta padrões temporais.

O periférico TOUCH não classifica ações como:

  • swipe
  • drag
  • long press
  • double tap

Ele apenas informa:

  • posição atual
  • estado do contato

Toda semântica é responsabilidade do jogo.


9. “Sem Aceleração” — Definição Formal

O PROMETEU não modifica o input do TOUCH.

  • Nenhuma curva de sensibilidade
  • Nenhuma amplificação por velocidade
  • Nenhuma suavização

A relação entre o toque físico e (x, y) é 1:1 após normalização.


10. Integração com Outras Formas de Input

  • Desktop:
    • mouse pode emular TOUCH
  • Mobile:
    • touch físico direto
  • Steam Deck:
    • touchscreen físico
  • Hardware PROMETEU:
    • touch opcional, mas suportado

Do ponto de vista do PROMETEU:

TOUCH é sempre TOUCH.


11. Usos Esperados

O periférico TOUCH é adequado para:

  • UI (menus, inventário, mapas)
  • drag-and-drop
  • seleção direta
  • “clicar para investigar”
  • puzzles baseados em apontamento
  • mecânicas de rastro (ex.: Fruit Ninja-like)

12. Garantias de Portabilidade

Todo jogo PROMETEU que utiliza TOUCH:

  • comporta-se de forma idêntica em todas as plataformas
  • não depende de capacidades específicas do host
  • não sofre variação semântica entre desktop, mobile e hardware dedicado

13. Resumo

O TOUCH no PROMETEU é:

  • simples
  • explícito
  • previsível
  • universal
  • determinístico

< Voltar | Sumário | Adiante >