2.8 KiB
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 :
0.04
L'axe dominant sélectionne :
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
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 :
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 :
python3 scripts/build_android_rust.py snake --abi x86_64
cd Android
gradle :game-snake-poc:assembleDebug
cd ..
Puis :
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.