Ho cercato di risolvere questo problema per due giorni e ho rinunciato a provare a trovare una soluzione esistente.Fotocamere multiple in libgdx (probabilmente simili in altri framework)
Ho iniziato a imparare libgdx e ho terminato un paio di esercitazioni. E ora ho provato a usare tutto ciò che ho imparato e creare un semplice gioco a scorrimento laterale. Ora, so che ci sono esempi libgdx di questo, ma non ne ho trovato uno che incorpori Box2d con scene2d e attori, nonché mappe affiancate.
Il mio problema principale è con le telecamere.
Hai bisogno di una fotocamera per lo stage (che per quanto ne so è utilizzato per la matrice di proiezione dello SpriteBatch passato al metodo draw() agli attori, se questo è sbagliato, correggimi) e hai bisogno di una fotocamera per TileMapRender per aver chiamato il metodo render(). Inoltre, in alcuni tutorial è presente una videocamera Orthographic nel GameScreen, che viene utilizzata dove necessario.
Ho provato a passare un oggetto OrthographicCamera ai metodi, ho provato a utilizzare la fotocamera dallo stage e la fotocamera da TileMapRenderer ovunque. Es.
OrthographicCamera ocam = new OrthographicCamera(FRUSTUM_WIDTH, FRUSTUM_HEIGHT);
stage.setCamera(ocam); // In the other cases i replace ocam with stage.getCamera() or the one i use for the tileMap Render
tileMapRenderer.render(ocam);
stage.getSpriteBatch().setProjectionMatrix(ocam.combined); // I am not sure if this is needed
Ho anche provato a utilizzare telecamere diverse ovunque.
Dopo aver provato tutto questo non ho notato cosa succede esattamente quando, ma voglio elencare cosa succede:
- Non c'è nulla sullo schermo (Probabilmente la fotocamera è lontano dalla roba che viene disegnata)
- Posso vedere la mappa piastrellata ei contorni dal debugRenderer (uso anche DebugRender ma non penso che interferisca con le telecamere), ma lo sprite dell'attore non è visibile (probabilmente fuori dallo schermo)
- Riesco a vedere tutto ciò che dovrei ma quando provo a spostare l'attore e la fotocamera, che dovrebbe seguirlo, la sp il rito va più veloce del corpo (il quadrato verde di debug).
Così le mie domande principali sono:
- non capisco cosa succede quando si dispone di più telecamere. "Attraverso" quale vedi in realtà sul montior?
- Devo usare più telecamere e come?
Inoltre, ho pensato che dovrei menzionare che sto usando OpenGL ES 2.0.
Mi dispiace per la lunga domanda, ma ho pensato che dovrei descrivere in dettaglio, poiché è un po 'complicato per me.
hai chiamato stage.act() e stage.draw() per rendere lo stage –