2009-05-10 23 views
5

Deseo hacer lo siguiente:Core Animation o OpenGL ES?

Toque la pantalla y dibuje 3 cricles alrededor del punto tocado. ¿Es mejor hacer esto con Core Animation u OpenGL ES?

¿Por dónde empiezo?

+1

No hay espacio en OpenGL. Además, en el iPhone, es OpenGL ES (sistema integrado). He editado tu pregunta. – Zifre

+1

¡Qué servicio ;-) Gracias – Stefan

Respuesta

4

Como se ha mencionado, el marco núcleo de gráficos es probablemente lo que quiere. Una buena forma de hacerlo sería subclase UIView, luego anular los dos métodos drawRect: y touchesEnded:withEvent:.

Cuando termina un evento táctil en UIView, puede obtener el último punto del evento pasado al touchesEnded:withEvent:, y almacenarlo de alguna manera en la instancia de su UIView subclasificado.

Luego, en su implementación de drawRect:, obtendrá el último punto de contacto almacenada, y dibuja tres círculos alrededor de ella utilizando tres llamadas a CGContextAddEllipseInRect, como se discute aquí: Quartz 2D Programming Guide: Paths (registro como desarrollador de Apple es necesario).

+0

Wow, super métodos y documentación para empezar! Gracias. – Stefan

2

Core Graphics es definitivamente más simple y mejor para 2D. OpenGL ES está hecho para 3D, pero también se puede usar para 2D. Ambos pueden usarse, así que si ya conoce uno, úselo. Realmente no debería importar tanto.

Ya sabía OpenGL, así que tiendo a usar OpenGL ES incluso para 2D, pero si no lo ha usado antes, vaya con Core Graphics.

+0

¿Por qué los gráficos Core son mejores para 2D que OpenGL ES? –

10

Mi experiencia es esta: cuanto más compleja se volvió mi aplicación, más me di cuenta de que debería haber usado OpenGL ES para lo que estaba tratando de hacer.

Por lo tanto, para su situación, si lo que describió es todo lo que hay, seguro, Core Graphics hace el truco. Pero, supongo que hay más que tres círculos.

Sin experiencia con OpenGL en total, la curva de aprendizaje para ES fue de aproximadamente 20 días.

Por lo tanto, mi consejo es: OpenGL ES para prácticamente cualquier aplicación basada en gráficos fotograma a fotograma.

+0

Genial, 20 días estarían bien. ¿Utilizaste solo el documento de Apple o hay algún libro que recomiendas? – Stefan

+1

Recomiendo el libro rojo (http://www.glprogramming.com/red/). A continuación, consulte las páginas OpenGL de Khronos (http://www.khronos.org/opengles/). Y, por supuesto, los tritones Googles. – Kriem

3

La ventaja de aprender OpenGL ES es que el tiempo que dedique a aprenderlo le servirá en el futuro en las aplicaciones de iPhone y en otros dispositivos.

En OpenGL ES, no hay una forma incorporada de dibujar un círculo, por lo tanto, use el seno y el coseno para crear círculos fuera de los segmentos de línea.

+0

Ok, OpenGL ES parece prometedor.Lo intentaré la próxima vez, tengo un par de horas gratis. – Stefan

Cuestiones relacionadas