Bugs fixes apres test utilisateur de la suite 13b
| Bug observe | Fix |
|---|---|
| Porte fermee n’affiche pas 1 chevron complet | Force vM=1 dans makeDoorSegGeo pour les portes |
| L’ouverture tronque le BAS au lieu du HAUT | V_top descend (au lieu de V_bot qui montait) |
Fix 1 : porte fermee = 1 chevron complet
La texture {@code wall_05_chevrondoor.png} fait 64×128 px et illustre une
porte complete (chevrons + grille + ecran). Elle doit etre affichee
exactement une fois sur le panneau ferme, peu importe la hauteur du
couloir. Avant on calculait {@code vM = wallH_pixels/tileH} :
- Couloir 4m -> vM = 128/128 = 1.0 ok
- Couloir 6m -> vM = 1.5 -> texture se repetait 1.5x
- Couloir 3m -> vM = 0.75 -> seulement les 3/4 du bas visibles
Maintenant on force {@code vM = 1f} dans {@code
LevelSceneBuilder.makeDoorSegGeo()}, ce qui etire/comprime legerement la
texture verticalement pour qu’elle remplisse exactement 1 fois le panneau
ferme. C’est le comportement Amiga d’origine : la texture-porte est
designee specifiquement pour la hauteur de porte du jeu, pas pour les
zones generales.
Fix 2 : ouverture tronque le HAUT (et non le BAS)
L’utilisateur a confirme apres test : la texture doit donner l’illusion
d’une porte qui glisse vers le haut et rentre dans le linteau, donc
le haut de la texture (= ecran/grille) doit disparaitre en premier,
pas les chevrons du bas.
Dans {@code DoorControl.updateMeshes()} :
- Avant (s13b) : V_bas montait avec ratio (= on voyait moins du bas)
- Apres (s13c) : V_haut descend avec ratio (= on voit moins du haut)
ferme : V_haut=1, V_bas=0 (texture complete)
mi-open: V_haut=0.5, V_bas=0 (moitie basse de la texture sur moitie
inferieure du panneau, sans compression)
ouvert : V_haut=0, V_bas=0 (collapse)
Fichiers modifies
LevelSceneBuilder.java:vM=1fdansmakeDoorSegGeo(+ retrait
wallH_pixelsdevenu inutilise).DoorControl.java: inverser le slide V (V_top descend, V_bot inchange).
Tests prevus
- Niveau A premiere porte (zone 5) : 1 chevron complet visible quand fermee.
- Pendant l’ouverture : la grille/ecran du haut de la texture disparait
progressivement, les chevrons restent visibles au bon ratio. - Si l’effet visuel ressemble plus a « texture qui glisse vers le haut »
que a « texture tronquee par le haut » -> envisager option B (V_bas
monte ensemble avec V_top, avec WrapMode.EdgeClamp pour eviter le
wrap).