Session 37 — Fix ecran noir : render() -> postRender() pour les menus 2D
Cause racine REELLE Les menus utilisaient AppState.render() pour dessiner via Renderer2D. render() s'execute AVANT que JME rende ses viewports. L'etat GL laisse…
Cause racine REELLE Les menus utilisaient AppState.render() pour dessiner via Renderer2D. render() s'execute AVANT que JME rende ses viewports. L'etat GL laisse…
renderer2D.destroy() dans cleanup() supprimait les programs GL AVANT que JME ait rendu un frame. Collision d'IDs GL -> shader cache invalide ->…
Cause racine identifiee par bisection Appeler rm.getRenderer().invalidateState() dans AppState.render() brise COMPLETEMENT le pipeline de rendu JME — meme le GuiNode ne s'affiche…
Cause racine Main.simpleInitApp() n'enregistrait PAS le dossier assets/ comme FileLocator : // MANQUAIT dans simpleInitApp() : assetManager.registerLocator(jmeAssets.toAbsolutePath().toString(), FileLocator.class); Sans ca, AssetManager.loadModel("scenes/scene_A.j3o") lance…
Bug racine : NullPointerException sur bullet.getPhysicsSpace() Dans initialize(), on appelait : bullet = new BulletAppState(); sm.attach(bullet); // bullet ajoute en attente bullet.getPhysicsSpace().add(rbc);…
Bug 1 : floorIdx() formule incorrecte Le whichTile dans le binaire est l'OFFSET MEMOIRE dans la banque floortile, pas un index direct.…
Fix 1 : hauteur texture depuis le footer du .256wad L'AMOS stocke la hauteur dans les 2 derniers bytes du fichier .256wad…
Bug critique : mauvais index texture (texIndex vs clipIdx) Depuis LevelED.txt (AMOS BASIC) : ZWG(A,B,0) = ZWG = fromTile = POSITION X…
Fix critique : normales murs inversées Problème : (dz, 0, -dx)/L = perpendiculaire DROITE = normale SORTANTE (vers l'extérieur). Les murs étaient…