Erstens, wie viele Schnitte könnten insgesamt passieren? Wie viele unabhängige Blöcke könnten sich ergeben? 10? 100? Bevor Sie eines davon implementieren, sollten Sie die Anzahl der Objekte auf einem iPhone oder iPod touch verschieben. Nur weil es auf dem Simulator funktioniert, bedeutet es nicht, dass es auf dem tatsächlichen Gerät schnell genug ist.
Zweitens, wie bereits erwähnt, gibt es Bibliotheken für Spielgrafik und Physik, die einen Großteil der Arbeit für Sie erledigen können. Cocos2D scheint eine beliebte Option zu sein, die OpenGL-Zeichnungen mit relativ einfachem Zugriff auf Physikbibliotheken kombiniert.
Wie auch immer, Ihre eigene Zeichnung zu tun, hier sind die Möglichkeiten:
Verschieben Sie alle Grafiken in OpenGL. Dies sollte nicht leichtfertig durchgeführt werden - Sie verlieren eine Menge der Leichtigkeit der Arbeit in Cocoa Touch. Sie haben auch die maximale Kontrolle über Ihre Grafiken und Animationen und können eine reibungslose Leistung erzielen, wenn Sie sich die Zeit nehmen, sie zu optimieren.
Haben Sie eine einzelne UIView, die für jeden unabhängigen Block CALayer
Sublayer zu seiner Hauptschicht hinzufügt. CALayers sind für schnelles Verschieben und Compositing konzipiert. Wenn Sie jedoch eine Physiksimulation ausführen, besteht der erste Schritt darin, das Animationsverhalten zu entfernen. This tutorial series kann nützlich sein.
Für jeden Block eine separate UIView
haben. Dies wird eine ähnliche Leistung wie die Verwendung von CALayers haben, da UIViews tatsächlich mit CALayer gezeichnet werden. Diese Option verbraucht mehr Speicher (Sie haben mindestens so viele Ebenen und mehr Ansichten als zuvor), aber Sie verfügen über alle Möglichkeiten von CALayers und einige Zeichenoptionen, die die Ansichten vereinfachen.
Haben Sie eine einzige UIView
, und zeichnen Sie jeden Block während seiner drawRect
Methode. Das mag leicht zu implementieren sein, aber es wird mit ziemlicher Sicherheit zu langsam sein.
Wenn möglich, testen Sie jede dieser. Bevor Sie mit den Schneide- und Physikteilen fortfahren, wie viele Blöcke können Sie über den Bildschirm animieren, bevor er zu weit abbremst? Kannst du damit ein Spiel machen? Denk daran, dass dein Physiksystem das Spiel verlangsamt, wenn es funktioniert.
Ich glaube nicht, dass ich verstehe, was Sie fragen, aber vielleicht http://box2d.org? – keegan3d
Ich frage, was besser zum Zeichnen von Blöcken, dann um sie zu animieren. – Andrey05
Check out 'NSBezierPath' – keegan3d