5.3 KiB
< 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
truese o periférico TOUCH está disponívelfalsese não houver touch físico (desktop, hardware sem touch)
- down
trueenquanto o ponteiro ativo está pressionado
- pressed
trueapenas no frame em que o ponteiro ativo foi capturado
- released
trueapenas 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
- Se nenhum ponteiro está ativo
- E ocorre um novo toque físico
- O primeiro toque detectado é capturado
- Esse toque se torna o ponteiro ativo
Esse frame gera:
pressed = truedown = 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, yseguem apenas o ponteiro ativo
6.3 Liberação
Quando o ponteiro ativo é solto:
released = truedown = 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