2009-04-23 4 views
1

Ich habe eine UIImageView, die mit einem Finger herumgezogen werden kann. Es ist so groß wie ein Bild, z. B. ein Ball oder ein Quadrat. Wenn der Benutzer schneller beschleunigt, möchte ich das Objekt mit einer Unschärfe von selbst verfolgen, um den Eindruck zu erwecken, dass es schneller geht. Zum Beispiel, was mit der Warp-Geschwindigkeit passiert. Ich habe auch einen Swoosh-Sound. Ich möchte, dass der Sound nur so lange hält, wie der Benutzer beschleunigt.Wie man Swoosh Grafik/Soundeffekt macht?

Wie kann ich diese Effekte erreichen?

Antwort

1

Nun, der Sound ist komplett außerhalb meiner Fähigkeiten - OpenGL hat keine Unterstützung für Sounds, Sie müssten in OpenAL oder was auch immer Äquivalente auf dem iPhone suchen.

Eine einfache Möglichkeit, die Unschärfe zu implementieren, besteht darin, ein Array der letzten paar Punkte des Objekts beizubehalten. Immer wenn das UIImageView verschoben wird (ich bin mir nicht sicher, ob es ein Ereignis gibt oder ob Sie jedes Bild überprüfen müssen), schieben Sie die neuen Orte auf das Array und löschen das älteste.

Wann immer es Zeit wird, das Objekt zu rendern, schauen Sie sich die letzten Punkte an und berechnen Sie den Abstand zwischen der aktuellen Position und dem letzten Element im Array. Wenn es über einer bestimmten Entfernung ist, zeichnen Sie eine Unschärfe an der Position des Arrays und überprüfen Sie die nächsten beiden Punkte. Fahren Sie fort, bis die Entfernung unter einer bestimmten Menge ist.

Hoffe, das hilft!