2009-08-05 16 views
7

Estoy escribiendo un juego simple que anima una imagen de bola rápidamente a través de una imagen de fondo.Core Animation u OpenGL para simple juego de iPhone

¿Podría Core Animation/Quartz ser suficiente para este escenario?

Realmente no quiero aprender OpenGL ES si no va a proporcionar ningún beneficio sustancial en este proyecto único.

+2

Si decides ir con Core Animation, ¡ASEGÚRATE de que lo pruebes en el dispositivo REGULARMENTE mientras lo desarrollas! ¡Puede funcionar bien en el simulador, pero se ralentiza en el dispositivo si estás haciendo demasiado! –

+2

El comentario de Ed es bastante irrelevante: no importa lo que estés haciendo, debes probarlo en el dispositivo porque el simulador funciona a la velocidad de tu escritorio, no a tu iPhone. – Eli

+0

Ambos revelan el problema común de las expectativas de desarrollo móvil. Una persona nueva en el desarrollo móvil * espera * que los simuladores sean precisos, o al menos los requisitos de mínimo denominador común para el hardware. Quien practica el desarrollo móvil, * sabe * que irremediablemente no son precisos y que el dispositivo es el verdadero "estándar" para medirlo. –

Respuesta

0

sí, estará bien, siempre y cuando no quieras hacer cientos de bolas a la vez o algo complicado así.

+0

Gracias ... Por cierto, es solo una bola a la vez, pero la imagen se verá animada (con algunos fotogramas) mientras vuela por la pantalla bastante rápido. –

0

Si su conocimiento de Core Animation es bueno, entonces le recomiendo que omita aprender OpenGL ES por ahora, ya que realmente no lo ayudará (si todo lo que quiere es lo que describió por supuesto). Por otro lado, si planea hacer más juegos que tengan gráficos más complicados, podría ser una mejor idea comenzar a aprender la API. OpenGL ES es una API simple y puede usar todas las características gráficas del iPhone con ella.

Si todo lo que quieres hacer es solo hacer este juego, entonces digo ve con lo que sabes y eres productivo.

+0

Gracias por responder. No he usado Core Animation o OpenGL ES antes ... Es un proyecto corto. Así que estoy buscando utilizar el enfoque más efectivo en tiempo de desarrollo, ya que es un juego muy sencillo. –

0

Yo diría que esto depende mucho de lo que quieras hacer con el balón. Si simplemente desea disparar una animación y olvidarse de ella, Core Animation probablemente estará bien. Sin embargo, si estás tratando de interactuar con la pelota, por ejemplo, cambiando la dirección de la pelota a mitad del vuelo en función de la interacción del usuario, entonces probablemente quieras considerar OpenGL ES. Por supuesto, tu otra opción es no usar Core Animation ni OpenGL ES y simplemente redibujar tu vista en un temporizador.

Si usted es un programador de C bastante competente, no me sentiré tan desanimado con las cosas de OpenGL ES. Apple proporciona mucho del marco para alojar vistas de OpenGL ES en sus plantillas. Aunque OpenGL puede involucrarse bastante, si no intenta renderizar escenas tridimensionales en varios objetos, lo básico es bastante sencillo y podrá obtener buenos resultados con bastante facilidad. A pesar de que es para OpenGL en vez de OpenGL ES, recomendaría este conjunto de demostraciones de vídeo como un buen punto de partida:

www.videotutorialsrock.com

+0

Gracias Gavin por responder. La pelota se lanzará desde abajo con un gesto de deslizamiento. Luego animé todo el camino hasta la parte superior (sin la entrada del usuario durante este tiempo). Solo se mostrará una bola a la vez. Como solo es un pequeño proyecto aislado, quería determinar si CA estaría bien ... no es probable que escriba juegos en el futuro (normalmente hago aplicaciones LOB). –

3

OpenGL ES supongo que no está demasiado duro.

Pero al final del día Core Animation va a estar bien, es muy poderoso y no es difícil trabajar con él. También te pondrá en marcha tan rápido que lanzarás un juego "apesta" un poco y querrás cambiarlo y ni siquiera tienes que aprender OpenGL.

Recomiendo encarecidamente mirar cocos2d. Un motor de juego muy simple para cosas 2d. http://cocos2d.org/

Eche un vistazo a eso.

Cheers, John

+0

Gracias John, echaré un vistazo al motor. –

5
+0

Sí, lo hice antes de publicar. En esta situación, el juego es muy simple y el hecho de que es probablemente una excepción ... ya que normalmente escribo aplicaciones LOB. –

1

sólo saltar a algo así como Cocos2D para que el OpenGL está hecho para usted. OpenGL ES es significativamente más rápido y más adaptable que Quartz, además de que no es más difícil. Incluso creo que Quartz es un gran dolor en el trasero y difícil de entender, aunque primero provengo de un fondo OpenGL en computadoras de escritorio, así que, naturalmente, ese salto es bastante pequeño. Sin embargo, el punto es que, ya sea con Quartz o con OpenGL ES, vas a necesitar pasar mucho tiempo con la gestión de recursos, etc., así que también puedes elegir Cocos2D.

3

OpenGL ES no es tan difícil, hay muchos recursos realmente buenos en la web y tutoriales paso a paso. Puede ser difícil al principio, pero una vez que lo agarres, las cosas serán fáciles. 71 Squared tiene tutoriales muy detallados:

http://www.71squared.co.uk/iphone-tutorials/

Sobre la cuestión, Core Animation es ideal para la mayoría de las aplicaciones, pero en un videojuego Es fundamental para llamar su juego de manera eficiente y tener tanto control como sea posible.

Cocos2d Es genial y lo recomiendo Si necesitas escribir un buen juego, pero si lo haces con fines educativos, recomiendo OpenGL, aprenderás mucho con él y obtendrás mucha experiencia.

+0

Los 71 tutoriales cuadrados tienen fecha ahora. Encontrarás funciones usadas que ahora se renombran o han tenido su funcionalidad en algún lugar. Con suerte, los actualizarán. –

+0

¿Podría dirigirme a cualquier lugar con tutoriales actualizados, una lista de las diferencias, etc. ?. Me encantaría actualizarme, pero no sé qué funciones están desactualizadas o reemplazadas por ahora. –

Cuestiones relacionadas