Sono confuso su quale sia l'approccio migliore quando si scrive un gioco per l'iphone. Il gioco sarà reso con OpenGL, ma sono curioso quando creo la schermata iniziale, il menu, la pagina di punteggio alto, ecc. Tutto ciò con OpenGL o crei ulteriori UIViews e usi l'UIKit?IPhone OpenGL ES viste singole o multiple?
risposta
Non penso che ci sia un approccio migliore. Se hai il tempo di programmare i menu e le tabelle dei punteggi più alti in OpenGL, hai molta più flessibilità - potresti avere ad esempio un'animazione 3D in background.
Se si codificano i menu, le tabelle punteggio elevato, ecc. Usando le viste standard UIKit e si passa alla vista OpenGL mentre vengono mostrati, questo ha il vantaggio che è molto veloce da codificare (specialmente se si è preso il tempo di imparare usare Interface Builder), ma è intrinsecamente 2d. Anche se puoi ancora utilizzare la grafica e i caratteri dei pulsanti personalizzati per renderla meno simile a un'app aziendale, sarà comunque meno brillante rispetto ad altri giochi nell'app store.
Quello che non si vuole fare è sovrapporre un UIView trasparente sopra la vista OpenGL - questo sarà molto lento.
Personalmente utilizzo le viste generate da Interface Builder per ottenere elementi come i menu mentre sto creando il resto del programma. L'intenzione è quella di sostituire quella con il codice animato OpenGL in seguito. Alla fine, però, dipende da quanto tempo hai a disposizione.
Non penso che ci sia una risposta giusta per questo. Io personalmente uso opengl per tutto, per esempio nelle strutture di menu io uso trame per il testo. Immagino dipenda da ciò che vuoi mostrare, penso che sarebbe più facile creare un look personalizzato che si adatti al tuo gioco se ti ostini con opengl.
Sì, penso che prenderò questo approccio, ma semplicemente non sapevo se era una buona pratica lasciare che le mele uikit gestissero le basi. – chicken
Ho sentito cose contraddittorie su questo. Ho sentito che è lento quando si esegue il rendering di UIKit su OES.
Dico, se vedi un'altra app che funziona, segui l'esempio.
Alcuni dei giochi più popolari fanno tutto in OES - ad es. Rolando. Forse è meglio seguire questo schema.
Non penso che stia chiedendo di stratificare UIKit su viste OpenGLES, solo se usarlo per altre "modalità" del gioco. – U62
Sì, come ha detto u62, in pratica avrei in questo esempio un gruppo di controller di visualizzazione e di visualizzazione push/poping basati su quello corretto da visualizzare. – chicken
In aggiunta a ciò che altri hanno detto, considera che è un po 'più facile per te attenersi ad OpenGL poiché questo sarà il grosso del codice base.
- 1. OpenGL o OpenGL ES
- 2. OpenGL ES per Iphone
- 3. Scegli OpenGL ES 1.1 o OpenGL ES 2.0?
- 4. iPhone OpenGL ES - Come scegliere
- 5. Fullscreen texture iPhone OpenGL ES
- 6. OpenGL ES (iPhone) Touch Picking
- 7. Gioco da tavolo per iPhone: OpenGL ES o CoreGraphics?
- 8. OpenGL ES iPhone - disegnare linee anti-aliasing
- 9. Animazione core o OpenGL ES?
- 10. OpenGL ES (iPhone) alpha blending sembra strano
- 11. Qualsiasi alternativa glPolygonMode su iPhone (OpenGL ES)?
- 12. glGetUniformLocation ritorno -1 OpenGL ES (iPhone)
- 13. iPhone OpenGL ES 2.0 - Pixel Perfect Textures
- 14. Android openGL ES glDrawArrays o glDrawElements?
- 15. OpenGL ES Render to Texture
- 16. Differenza in iOS OpenGL ES e Android OpenGL ES
- 17. Ottimizzazione di OpenGL ES su iPhone e interpretazione degli strumenti
- 18. Consigli sull'accelerazione di OpenGL ES 1.1 su iPhone
- 19. OpenGL è retrocompatibile con OpenGL ES?
- 20. Come utilizzare OpenGL ES su un thread separato su iphone?
- 21. Come caricare e visualizzare l'immagine in OpenGL ES per iphone
- 22. OpenGl ES su Iphone - Visualizzazione e rotazione di oggetti 3D
- 23. Come si attiva il multicampionamento in OpenGL ES su iPhone?
- 24. OpenGL ES 2.0 IllegalArgumentException
- 25. Shader compatibili OpenGL ES e OpenGL
- 26. Viste multiple Eventi OnTouch
- 27. Navigazione con frammenti Android per tablet: attività singole o multiple?
- 28. OpenGL ES 2d rendering nell'immagine
- 29. Shader per Android OpenGL ES
- 30. Emulatore Android OpenGL ES 2.0
Grazie, penso che andrò per la strada ES per fare tutto questo. – chicken
Ma, cosa fai del testo? ... Posso creare i miei pulsanti e le mie interfacce in openGL, ma come gestisci il testo? ... se tutto il mio gioco è in inglese, ad esempio, lo scrivo solo le mie risorse grafiche, ma cosa succede se ho bisogno di localizzarlo?, sembra un po 'complicato –
Di solito in un gioco si hanno due situazioni: una piccola quantità di testo e una grande quantità. Se è una piccola quantità, probabilmente masterizzeresti il testo in una bitmap e, nel caso della localizzazione, hai solo più copie della bitmap. Nei casi in cui si dispone di grandi quantità di testo, non è pratico memorizzarlo in una bitmap in ogni caso, è necessario eseguire il rendering del testo in fase di esecuzione. È possibile creare un contesto grafico su una bitmap fuori campo, utilizzare le API Quartz per eseguire il rendering di qualsiasi cosa (incluso il testo) e quindi utilizzare quella bitmap come trama OpenGL. – U62