2009-07-04 10 views

Respuesta

21

En realidad, lo que sugeriría en este caso es Core Animation o incluso solo UIViews. Si dirige el dibujo de todos sus elementos en una vista única a través de Core Graphics, luego actualice esa vista para cada cuadro de animación, obtendrá un rendimiento horrible.

Sugeriría dibujar los elementos discretos del tablero de juego (piezas, fichas, cuadros de tablero, etc.) como UIViews o CALayers individuales, y luego animar esas capas o vistas. Los UIViews no son mucho más pesados ​​que los CALayers, y usan Core Animation detrás de las escenas para realizar movimientos simples, escalar o atenuar las animaciones. También pueden responder a eventos táctiles. Los CALayers son útiles si desea construir un juego más multiplataforma (Mac y iPhone), o si necesita realizar animaciones más complejas.

Para un juego en 2-D, aguantaría en OpenGL hasta que estuviera absolutamente seguro de que no podría obtener el tipo de rendimiento que desea de Core Animation. OpenGL es mucho menos elegante para codificar.

Para obtener un buen ejemplo de cómo hacer un juego de mesa con Core Animation, Apple ha proporcionado el GeekGameBoard sample code. Aunque es una aplicación de Mac, el código de Core Animation se puede traducir directamente al iPhone.

3

OpenGL, si se hace bien, probablemente se verá mejor. Sin embargo, tengo entendido que es mucho más difícil que CoreGraphics si no sabes cómo funciona.

Sin embargo, si no está familiarizado con él, CoreGraphics es más fácil de recoger. No sé mucho sobre OpenGL, así que cuando estaba escribiendo un juego, lo hice en CoreGraphics y resultó bastante bien.

+4

"OpenGL, si se hace bien, probablemente se verá mejor". Estoy totalmente en desacuerdo con ese comentario. Es probable que tenga problemas de aliasing, problemas de filtrado de texturas, etc., que no tendrá con las piezas renderizadas previamente. Por supuesto, si lo que quieres decir es "sería más impresionante con la rotación 3D en todo el tablero", sí lo haría. – jv42

+0

No se verá mejor con OpenGL. Para juegos simples, ¡CoreAnimation funcionará bien! – bentford

3

Si su perspectiva es principalmente vista superior, la vista del usuario está en una posición fija, y no necesita mapeo de textura en tiempo de ejecución o iluminación especial, entonces los gráficos centrales serán más fáciles. De lo contrario, iría con OpenGL (o uno de esos kits de creación de juegos de terceros como Unity que lo hacen simple).

Realmente depende del tipo de apariencia que vaya a utilizar.

2

Si no está muy hambriento de rendimiento, lo que probablemente no sea un juego de mesa, vaya con CoreGraphics. Te das el lujo de trabajar a un nivel de abstracción más alto y también obtienes algunas cosas que deberías escribir a mano, por ejemplo, animaciones. (P.S. Supongo que estás hablando de 2D.)

+2

CoreGraphics seguro. Puede manejar fácilmente la animación de 20 - 30 sprites en la pantalla al mismo tiempo con muy pocos problemas de rendimiento. Será más rápido modificarlo porque puede usar herramientas como Photoshop para reconstruir sus imágenes. OpenGLES podría ser realmente genial si quieres hacer movimientos de la cámara realmente geniales o animaciones realmente geniales. –

+0

Sin duda, también puedes usar tu preciado Photoshop con OpenGL. Apple proporciona código para cargar UIImages como texturas OpenGL. –

6

También puedes echarle un vistazo a cocos2d para iphone: es una biblioteca de juegos 2d bastante completa; tiene mapas de mosaico, sprites, paralaje, programación, etc. Lo estoy usando para mi juego, y me ha ayudado bastante.

http://code.google.com/p/cocos2d-iphone/

+0

Usa Cocos2D, nunca golpearás un bloque debido a la animación de cuadros pesados. También puede agregar efectos de partículas de lujo. Es muy fácil de aprender y comenzar a ver resultados. Proporciona administración de escena. –

0

OpenGL. Valdrá la pena a largo plazo, y pensé que la curva de aprendizaje era aún más fácil que CoreGraphics para cosas de sprites 2D.

2

Para este definitivamente gráficos básicos y animación central. Jeff LeMarche tiene una plantilla de muestra para un juego de Black Jack en su blog. Acabo de terminar un suduko en este enfoque. En cuanto a cocos2D que estoy usando para un juego de plataforma - OpenGL no mejoraría o mejoraría los gráficos - definitivamente no hará que los gráficos se vean mejor - puedes photoshop con esto en tu corazón y sentirte seguro y saber que se verá genial . Aprender Cocos2D por esto es demasiada sobrecarga, lo mismo con el aprendizaje de OpenGL ES, simplemente usa gráficos centrales y obténgala allí.En cuanto a conocer OpenGL ES para el futuro, por supuesto, pero debes entender el "núcleo" de Apple antes de intentar esto.

Cuestiones relacionadas