2009-04-17 18 views
5

Estoy confundido sobre cuál es el mejor enfoque al escribir un juego para el iphone. El juego se representará con OpenGL, pero tengo curiosidad cuando creo la pantalla de inicio, menú, página de puntaje alto, etc. ¿Haces todo eso con OpenGL o creas UIViews adicionales y usas el UIKit?IPhone OpenGL ES vistas individuales o múltiples?

Respuesta

2

No creo que haya un mejor enfoque. Si tiene tiempo para programar menús y tablas de puntaje alto en OpenGL, tiene mucha más flexibilidad, por ejemplo, podría tener una animación en 3D en segundo plano.

Si codifica menús, tablas de puntuación alta, etc. usando vistas de UIKit estándar y cambia la vista de OpenGL mientras se muestran, esto tiene la ventaja de que es muy rápido de codificar (especialmente si se tomó el tiempo para aprender para usar Interface Builder), pero es inherentemente 2d. Aunque todavía puede usar gráficos y tipos de botones personalizados para que se vea menos como una aplicación comercial, todavía se verá menos pulido en comparación con otros juegos en la tienda de aplicaciones.

Lo que no quiere hacer es aplicar una capa de UIView transparente sobre la parte superior de la vista de OpenGL, esto será muy lento.

Yo personalmente uso las vistas generadas por Interface Builder para obtener cosas como menús mientras estoy construyendo el resto del programa. La intención es reemplazarlo con código animado OpenGL más tarde. Al final, sin embargo, es realmente la cantidad de tiempo que tienes disponible.

+0

Gracias, creo que iré por la ruta ES para hacer todo esto. – chicken

+0

Pero, ¿qué haces con el texto? ... Puedo hacer mis botones e interfaces en OpenGL, pero ¿cómo manejas el texto? ... si todo mi juego está en inglés, por ejemplo, solo lo escribo. mis recursos gráficos, pero ¿y si necesito localizarlo? parece un poco complicado –

+0

Normalmente en un juego tienes dos situaciones: una pequeña cantidad de texto y una gran cantidad. Si es una cantidad pequeña, probablemente queme el texto en un mapa de bits y, en el caso de la localización, simplemente tenga varias copias del mapa de bits. Donde tenga grandes cantidades de texto, no es práctico almacenarlo en un mapa de bits de todos modos, necesita renderizar el texto en tiempo de ejecución. Puede crear un contexto de gráficos en un mapa de bits fuera de la pantalla, usar las API de Quartz para representar cualquier cosa (incluido el texto) y luego usar ese mapa de bits como una textura OpenGL. – U62

1

No creo que haya una respuesta correcta para esto. Yo personalmente uso OpenGL para todo, por ejemplo en estructuras de menú utilizo texturas para el texto. Supongo que depende de lo que quieras mostrar, creo que sería más fácil crear una apariencia personalizada que vaya bien con tu juego si te quedas con OpenGL.

+0

Sí, creo que tomaré este enfoque, pero simplemente no sabía si era una mejor práctica dejar que las manzanas uikit manejaran las básicas. – chicken

1

He escuchado cosas contradictorias sobre esto. He oído que es lento cuando renderizas UIKit sobre el OES.

Digo, si ve otra aplicación que funciona bien, haga lo mismo.

Algunos de los juegos más populares hacen de todo en OES, p. Rolando. Tal vez es mejor seguir ese patrón.

+0

No creo que pregunte sobre la colocación de capas de UIKit sobre las vistas de OpenGLES, sino sobre si usarlo para otros 'modos' del juego. – U62

+0

Sí, como dijo u62, básicamente tendría en ese ejemplo un montón de controladores de vista y vistas de empuje/apertura basadas en la correcta para mostrar. – chicken

0

Además de lo que otros han dicho, considere que es un poco más fácil para usted quedarse con OpenGL ya que esa será la mayor parte de su código base.

Cuestiones relacionadas