2012-04-13 7 views
0

Wie Sie die Blöcke in der Zeichnungsansicht korrekt implementieren, sodass sie die Linie in zwei Teile schneiden können. Verwenden von UIImageView oder UIImage?Korrekte Implementierung der Blöcke in der Zeichnungsansicht

enter image description here

Nach den geschnittenen Blöcke sollten unter dem Einfluss der Physik fallen.

+0

Ich glaube nicht, dass ich verstehe, was Sie fragen, aber vielleicht http://box2d.org? – keegan3d

+0

Ich frage, was besser zum Zeichnen von Blöcken, dann um sie zu animieren. – Andrey05

+0

Check out 'NSBezierPath' – keegan3d

Antwort

1

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Verwandte Themen