2009-05-10 17 views
5

Desidero effettuare le seguenti operazioni:Animazione core o OpenGL ES?

Toccare lo schermo e disegnare 3 punti di cricca attorno al punto toccato. È meglio farlo con Core Animation o OpenGL ES?

Da dove iniziare?

+1

Non c'è spazio in OpenGL. Inoltre, sull'iPhone, è OpenGL ES (sistema incorporato). Ho modificato la tua domanda. – Zifre

+1

Che servizio ;-) Grazie – Stefan

risposta

4

Come accennato, il quadro core grafico è probabilmente quello che volete. Un buon modo per farlo sarebbe quello di sottoclasse UIView, quindi sovrascrivere i due metodi drawRect: e touchesEnded:withEvent:.

Quando un evento tattile termina su UIView, è possibile ottenere il punto dell'ultimo tocco dall'evento passato a touchesEnded:withEvent: e memorizzarlo in qualche modo nell'istanza del proprio UIView sottoclasse.

Poi, nell'implementazione di drawRect:, si otterrà il punto di contatto ultima memorizzata, e disegnare tre cerchi intorno ad esso utilizzando tre chiamate al CGContextAddEllipseInRect, come discusso qui: Quartz 2D Programming Guide: Paths (registrazione di Apple Developer richiesto).

+0

Wow, super metodi e docu per iniziare! Grazie. – Stefan

2

La grafica core è decisamente più semplice e migliore per il 2D. OpenGL ES è realizzato per 3D, ma può anche essere utilizzato per 2D. Entrambi possono essere usati, quindi se ne conosci già uno, usa quello. Non dovrebbe davvero importare così tanto.

Conoscevo già OpenGL, quindi tendo ad usare OpenGL ES anche per 2D, ma se non l'hai mai usato prima, vai con Core Graphics.

+0

Perché la grafica di base è migliore per 2D rispetto a OpenGL ES? –

10

La mia esperienza è questa: più la mia app è diventata complessa, più mi sono reso conto che avrei dovuto usare OpenGL ES per quello che stavo cercando di fare.

Quindi, per la tua situazione, se quello che hai descritto è tutto quello che c'è, certo, la Core Graphics fa il trucco. Ma, immagino ci sia più di tre cerchi.

In assenza di esperienza con OpenGL su tutti, la curva di apprendimento per ES era di circa 20 giorni.

Quindi, il mio consiglio è: OpenGL ES per quasi tutte le applicazioni basate su frame frame-to-frame.

+0

Fantastico, 20 giorni sarebbero ok. Hai usato solo Apple docu, o c'è qualche libro che consiglieresti? – Stefan

+1

Raccomando il Red Book (http://www.glprogramming.com/red/). Accanto a questo, controlla le pagine OpenGL da Khronos (http://www.khronos.org/opengles/). E naturalmente i Googles fidati. – Kriem

3

Il vantaggio di apprendere OpenGL ES è che il tempo impiegato per apprenderlo sarà utile in futuro per le app iPhone e su altri dispositivi.

In OpenGL ES, non esiste un modo incorporato per disegnare un cerchio, quindi utilizzare seno e coseno per creare le cerchie fuori dai segmenti di linea.

+0

Ok, OpenGL ES sembra promettente.Ci proverò la prossima volta, ho un paio d'ore gratis. – Stefan