# Delta 0.1.0-0-pre.11.fix.3 ## Base Base déclarée : `0.1.0-0-pre.11.fix.2`, techniquement propre mais contrôle tactile Snake jugé insuffisant lors du smoke Android. ## Problème observé Le mapping directionnel basé sur la position absolue du tap par rapport au centre est fonctionnel mais peu naturel pour Snake. Un tap peut facilement produire une direction involontaire et le joueur doit viser une zone plutôt qu'exprimer directement la direction souhaitée. ## Correctif Snake utilise désormais un geste de swipe reconnu dans `engine-v1-sdl`. ### Début `MouseButtonDown` ou `FingerDown` mémorise l'origine du geste. L'impulsion `Primary` reste émise sur `Down`, afin que Reflex conserve son comportement. ### Mouvement `MouseMotion` et `FingerMotion` mettent à jour `PointerState` sans émettre de direction. ### Fin `MouseButtonUp` ou `FingerUp` calcule le déplacement normalisé depuis l'origine. La direction est produite uniquement si l'amplitude dominante atteint : ```text 0.04 ``` L'axe dominant sélectionne : ```text Left Right Up Down ``` Un tap ou micro-mouvement ne change donc pas la direction. `FingerCanceled` annule le geste sans produire d'action. ## Tests Trois tests ciblés vérifient : - qu'un geste trop court n'émet aucune direction ; - qu'un swipe horizontal choisit l'axe horizontal ; - qu'un swipe vertical choisit l'axe vertical. ## Validation ```bash cargo fmt --all cargo fmt --all -- --check python3 scripts/audit_rust_workspace_rules.py python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates Android deltas history cargo check --workspace cargo clippy --workspace --all-targets --all-features -- -D warnings cargo test -p engine-v1-sdl --all-targets --all-features cargo test -p game-snake-poc --all-targets --all-features ``` Smoke Desktop : ```bash cargo run -p game-snake-poc-desktop ``` Les flèches restent disponibles. Un drag souris suffisamment long peut également changer la direction. Android x86_64 : ```bash python3 scripts/build_android_rust.py snake --abi x86_64 cd Android gradle :game-snake-poc:assembleDebug cd .. ``` Puis : ```bash android emulator start sasedev_games_api36 adb devices android run \ --apks=Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk \ --device=emulator-5554 ``` Critères : - swipe gauche/droite/haut/bas naturel ; - tap simple sans changement de direction ; - demi-tour immédiat toujours refusé par le gameplay ; - aucun impact sur Reflex `Primary`. ## Transition Si les gates et le smoke Android passent, `0.1.0-0-pre.11.fix.3` valide la fin de la phase `0-pre.*`. En cas d'échec imputable au projet, produire `0.1.0-0-pre.11.fix.4`.