2009-05-10 10 views
5

Ich möchte Folgendes tun:Kern Animation oder OpenGL ES?

Tippen Sie auf den Bildschirm und zeichnen Sie 3 Kreise um den abgegriffenen Punkt. Ist es besser, dies mit Core Animation oder OpenGL ES zu tun?

Wo fange ich an?

+1

In OpenGL ist kein Platz. Auch auf dem IPhone ist es OpenGL ES (Embedded System). Ich habe deine Frage bearbeitet. – Zifre

+1

Was für ein Service ;-) Danke – Stefan

Antwort

4

Wie erwähnt, ist die Core Graphics Framework wahrscheinlich getan werden, was Sie wollen. Ein guter Weg, dies zu tun, wäre, UIView abzuleiten, dann überschreiben Sie die beiden Methoden drawRect: und touchesEnded:withEvent:.

Wenn ein Berührungsereignis auf der UIView endet, können Sie den Punkt der letzten Berührung des Ereignisses, das an touchesEnded:withEvent: übergeben wurde, abrufen und in der Instanz der untergeordneten UIView speichern. mit drei Anrufen CGContextAddEllipseInRect

Dann in Ihrer Implementierung von drawRect:, werden Sie den gespeicherte letzten Berührungspunkt zu erhalten, und um ihn herum drei Kreise ziehen, wie hier diskutiert: Quartz 2D Programming Guide: Paths (Registrierung als Apple Developer erforderlich).

+0

Wow, super Methoden und Doku zum starten! Vielen Dank. – Stefan

2

Core Graphics ist definitiv einfacher und besser für 2D. OpenGL ES ist für 3D gemacht, kann aber auch für 2D verwendet werden. Beide können verwendet werden, wenn Sie also bereits eines kennen, verwenden Sie das. Es sollte nicht so wichtig sein.

Ich kannte OpenGL bereits, daher neige ich dazu, OpenGL ES auch für 2D zu verwenden, aber wenn Sie noch nie zuvor verwendet haben, sollten Sie Core Graphics verwenden.

+0

Warum sind Core-Grafiken besser für 2D als OpenGL ES? –

10

Meine Erfahrung ist dies: Je komplexer meine App wurde, desto mehr realisierte ich, dass ich OpenGL ES für das, was ich versuchte, hätte verwenden sollen.

Also, für Ihre Situation, wenn, was Sie beschrieben, alles ist, ist sicher, Core Graphics macht den Trick. Aber ich vermute, da ist mehr als drei Kreise.

Ohne Erfahrung mit OpenGL überhaupt war die Lernkurve für ES etwa 20 Tage.

Also, mein Rat ist: OpenGL ES für so ziemlich jede Frame-to-Frame-Grafik basierte App.

+0

Cool, 20 Tage wäre ok. Haben Sie nur Apple-Dokumente verwendet oder gibt es ein Buch, das Sie empfehlen würden? – Stefan

+1

Ich empfehle das Red Book (http://www.glprogramming.com/red/). Schauen Sie sich die OpenGL-Seiten von Khronos (http://www.khronos.org/opengles/) an. Und natürlich die überzeugenden Googles. – Kriem

3

Der Vorteil des Erlernens von OpenGL ES besteht darin, dass die Zeit, die Sie zum Erlernen dieser Sprache benötigen, Ihnen in Zukunft auf iPhone Apps und anderen Geräten gut tun wird.

In OpenGL ES gibt es keine eingebaute Möglichkeit, einen Kreis zu zeichnen, also verwenden Sie Sinus und Kosinus, um Ihre Kreise aus Liniensegmenten aufzubauen.

+0

Ok, OpenGL ES sieht vielversprechend aus.Ich werde es das nächste Mal versuchen, ich bekomme ein paar Stunden frei. – Stefan