3.5 KiB
Delta 0.1.0-0-pre.11.fix.4
Base
Base déclarée : 0.1.0-0-pre.11.fix.3, non validée.
Motifs
Deux points restent à corriger avant validation finale de 0-pre.*.
Audit RUST-TEST-001
Le module externe unit_tests/swipe.rs était déclaré avec :
mod swipe_tests;
alors que la règle workspace exige la forme canonique :
mod tests;
Le corps des tests reste bien hors de src/.
Sortie explicite
Le smoke Android a montré un gameplay fonctionnel et des swipes nettement meilleurs, mais aucun contrôle visuel de sortie n'était disponible dans le jeu plein écran.
Sortie Desktop
Escape continue de quitter directement la boucle SDL, sans nécessiter le bouton de fermeture de la fenêtre.
Sortie Android
Le backend SDL configure :
SDL_ANDROID_TRAP_BACK_BUTTON=1
et quitte la boucle sur Keycode::AcBack.
Un contrôle de fermeture rouge avec un X blanc est également rendu en haut à droite.
Zone normalisée :
x = 0.86 .. 0.99
y = 0.015 .. 0.105
Un MouseButtonDown ou FingerDown dans cette zone quitte la boucle avant toute transmission de l'input au jeu.
Aucun exit() n'est utilisé : SdlRuntime::run retourne normalement, puis l'entrypoint Android retourne à SDL/Java.
Tests
Le fichier externe unit_tests/swipe.rs vérifie désormais aussi le hit-test du contrôle de sortie.
Validation Rust
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
Critères supplémentaires :
Escapequitte sans cliquer sur le bouton de fenêtre ;- aucun contrôle Android n'est visible sur Desktop.
Smoke 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 supplémentaires :
- contrôle de fermeture visible en haut à droite ;
- tap dessus termine proprement l'Activity ;
- Back système termine également proprement l'Activity ;
- aucun input Snake n'est déclenché par le contrôle de fermeture.
Test physique Galaxy S9+
Activer les Options développeur et le Débogage USB, connecter le téléphone et accepter l'autorisation RSA.
Identifier son serial et son ABI :
adb devices
adb -s <serial> shell getprop ro.product.cpu.abi
Reconstruire ARM64 après ce fix :
python3 scripts/build_android_rust.py snake --abi arm64-v8a
cd Android
gradle :game-snake-poc:assembleDebug
cd ..
Déployer :
android run \
--apks=Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk \
--device=<serial>
Le téléphone réel sert à juger la latence et la qualité tactile, pas seulement la compatibilité d'installation.
Transition
Si les gates et les smokes sont propres, 0.1.0-0-pre.11.fix.4 valide la fin de la phase 0-pre.*.
En cas d'échec imputable au projet, produire 0.1.0-0-pre.11.fix.5.