0.1.0-0-pre.10
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/000-README.md -->
|
||||
<!-- version: 11 -->
|
||||
<!-- version: 12 -->
|
||||
|
||||
# Documentation games.sasedev
|
||||
|
||||
@@ -56,3 +56,5 @@ Voir [`../RULES.md`](../RULES.md), notamment [`rules/RULES_COMMANDS.md`](rules/R
|
||||
## Historique validé
|
||||
|
||||
- [`../history/README.md`](../history/README.md) — convention et navigation de l'historique transitoire immuable des jalons validés.
|
||||
|
||||
- [`architecture/009-ENGINE_V1_RENDER_SCENE.md`](architecture/009-ENGINE_V1_RENDER_SCENE.md) — scène 2D portable, rectangles normalisés et backend SDL3.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/architecture/004-INPUT_AND_CONTROLS.md -->
|
||||
<!-- version: 2 -->
|
||||
<!-- version: 3 -->
|
||||
|
||||
# Abstraction des entrées et contrôles
|
||||
|
||||
@@ -67,3 +67,14 @@ SDL3 fournit cette abstraction sur Android avec les événements `FingerDown`, `
|
||||
La baseline `0.1.0-0-pre.8` mappe également un doigt actif vers `GameAction::Primary`. Cette association est volontairement minimale et pourra être remplacée par des zones tactiles ou boutons virtuels par jeu.
|
||||
|
||||
Le gameplay ne dépend d'aucun type Android, Java ou SDL3.
|
||||
|
||||
## Impulsion Primary et état maintenu
|
||||
|
||||
À partir de `0.1.0-0-pre.10`, `GameAction::Primary` représente une impulsion de déclenchement pour souris/tactile :
|
||||
|
||||
- `MouseButtonDown` gauche produit une impulsion `Primary` ;
|
||||
- `FingerDown` produit une impulsion `Primary` ;
|
||||
- les mouvements mettent à jour `PointerState` sans répéter `Primary` ;
|
||||
- `MouseButtonUp`, `FingerUp` et `FingerCanceled` désactivent le pointeur.
|
||||
|
||||
Cette séparation empêche un contact maintenu de produire un succès par frame.
|
||||
|
||||
53
docs/architecture/009-ENGINE_V1_RENDER_SCENE.md
Normal file
53
docs/architecture/009-ENGINE_V1_RENDER_SCENE.md
Normal file
@@ -0,0 +1,53 @@
|
||||
<!-- file: docs/architecture/009-ENGINE_V1_RENDER_SCENE.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Scène de rendu Engine V1
|
||||
|
||||
## Principe
|
||||
|
||||
Le gameplay ne dépend pas de SDL3.
|
||||
|
||||
`engine-v1-common` expose un modèle de scène 2D volontairement minimal :
|
||||
|
||||
- `RenderColor` ;
|
||||
- `NormalizedRect` ;
|
||||
- `RenderRect` ;
|
||||
- `EngineScene`.
|
||||
|
||||
Toutes les géométries sont normalisées dans `[0.0, 1.0]`.
|
||||
|
||||
`EngineGame::scene()` produit un snapshot après chaque update. L'implémentation par défaut fournit uniquement un fond sombre, ce qui permet aux jeux non migrés de rester compatibles.
|
||||
|
||||
## Backend SDL3
|
||||
|
||||
`engine-v1-sdl` :
|
||||
|
||||
1. reçoit la scène portable ;
|
||||
2. récupère la taille de sortie courante du renderer ;
|
||||
3. convertit les rectangles normalisés en `FRect` physiques ;
|
||||
4. dessine le fond et les rectangles ;
|
||||
5. présente la frame.
|
||||
|
||||
Le resize Desktop ne modifie donc pas les coordonnées logiques du jeu.
|
||||
|
||||
## Baseline Reflex
|
||||
|
||||
Le POC Reflex expose une cible rectangulaire jaune.
|
||||
|
||||
Un clic/tap ne marque un point que si le pointeur se trouve dans la cible au moment de l'impulsion `Primary`.
|
||||
|
||||
Après chaque succès, la cible se déplace selon une séquence déterministe afin que les tests restent reproductibles.
|
||||
|
||||
## Limites V1 actuelles
|
||||
|
||||
Le modèle ne fournit pas encore :
|
||||
|
||||
- texte de production ;
|
||||
- textures ;
|
||||
- sprites ;
|
||||
- audio ;
|
||||
- transformations ;
|
||||
- clipping complexe ;
|
||||
- batching spécialisé.
|
||||
|
||||
Ces capacités seront ajoutées uniquement lorsqu'un besoin concret du POC le justifiera.
|
||||
Reference in New Issue
Block a user