2009-05-10 13 views
5

Chcę wykonać następujące czynności:Core Animation lub OpenGL ES?

Dotknij ekranu i narysuj 3 klocki wokół wybranego punktu. Czy to lepiej zrobić z Core Animation lub OpenGL ES?

Od czego zacząć?

+1

Brak miejsca w OpenGL. Ponadto na IPhone jest to OpenGL ES (system wbudowany). Zmieniłem twoje pytanie. – Zifre

+1

Co za usługa ;-) Dziękuję – Stefan

Odpowiedz

4

Jak wspomniano, ramy rdzeń graficzny jest chyba to, co chcesz. Dobrym sposobem obejścia tego problemu jest podklasa UIView, a następnie nadpisanie dwóch metod: drawRect: i touchesEnded:withEvent:.

Gdy zdarzenie dotykowe kończy się na UIView, można uzyskać punkt ostatniego dotknięcia zdarzenia przekazanego do touchesEnded:withEvent: i zapisać go w jakiś sposób w instancji twojego podklasowanego UIView.

Następnie w realizacji drawRect:, dostaniesz zapisany ostatni punkt dotykowy i narysuj trzy kręgi wokół niego za pomocą trzech połączeń do CGContextAddEllipseInRect, jak omówiono tutaj: Quartz 2D Programming Guide: Paths (rejestracja jako firmy Apple Developer wymagane).

+0

Wow, super metody i dokumentacja na początek! Dzięki. – Stefan

2

Core Graphics jest zdecydowanie prostszy i lepszy w 2D. OpenGL ES jest stworzony dla 3D, ale może być również użyty do 2D. Oba mogą być użyte, więc jeśli już je znasz, użyj tego. To nie powinno mieć większego znaczenia.

Znałem już OpenGL, więc używam OpenGL ES nawet do 2D, ale jeśli nie korzystałeś wcześniej, przejdź z Core Graphics.

+0

Dlaczego grafika jądrowa jest lepsza dla 2D niż OpenGL ES? –

10

Moje doświadczenie jest takie: im bardziej złożona jest moja aplikacja, tym bardziej zdałem sobie sprawę, że powinienem był użyć OpenGL ES do tego, co próbowałem zrobić.

Tak więc, dla twojej sytuacji, jeśli to, co opisałeś, jest wszystkim, to pewnie, Core Graphics załatwia sprawę. Ale przypuszczam, że jest w tym coś więcej niż trzy koła.

Bez doświadczenia z OpenGL przy wszystkich, krzywa uczenia się dla ES wynosiła około 20 dni.

Moja rada brzmi: OpenGL ES dla prawie każdej aplikacji opartej na grafice opartej na ramce do ramki.

+0

Fajnie, 20 dni byłoby w porządku. Czy używasz tylko Apple docu, czy jest jakaś książka, którą polecasz? – Stefan

+1

Polecam Czerwoną Książkę (http://www.glprogramming.com/red/). Następnie sprawdź strony OpenGL z Khronos (http://www.khronos.org/opengles/). No i oczywiście godne zaufania Gogle. – Kriem

3

Zaletą nauki w OpenGL ES jest to, że czas, który wprowadzisz, będzie Ci dobrze służył w przyszłości w aplikacjach na iPhone'a i na innych urządzeniach.

W OpenGL ES nie ma wbudowanego sposobu narysowania okręgu, więc użyj funkcji sinus i cosinus, aby utworzyć kręgi poza segmentami linii.

+0

Ok, OpenGL ES wygląda obiecująco.Spróbuję tego następnym razem, dostanę kilka godzin za darmo. – Stefan

Powiązane problemy