2009-08-18 15 views
0

Im Moment weiß ich, wie man ein Objekt mit einer bestimmten Geschwindigkeit in eine bestimmte Richtung bewegt, bin mir aber nicht sicher, wie man eine Bildansicht von einem CGPoint zu einem anderen bewegt, ohne Animationen zu verwenden interaktiv sein. Es gibt auch eine Möglichkeit, eine Steigung anzuwenden, während sie sich von Punkt A nach B bewegt, so dass sie sich zu krümmen scheint, während sie sich bewegt. Was ich versuche zu erreichen, ist ein Vogelflug zum Boden und dann wieder in die Luft fliegen.Verschieben einer Bildansicht entlang eines Pfades

Antwort

0

Sie können dies erreichen, indem Sie eine NSTimer verwenden, die in regelmäßigen Abständen eine Methode von Ihnen aufruft, die den Vogel (Ihr animiertes Bild) schrittweise jedes Mal ein wenig bewegt.

Einige Beispielcode ein Objekt entlang einer parabolischen Bogen zu bewegen:

// Assumptions: We have the variable 
// UIView* bird <-- to be moved 
// parabolically along the path y = x^2, 
// up to translation (that is, slid over so the bottom 
// point is not (0,0), but something in the view). 
// Suppose bird starts out at (-3, 9) here. 

- (void) oneBirdStep { 
    static const flost ddy = 2; 
    static float dy = -5; // Start out at 2*x0 + 1. 
    CGFloat birdY = bird.frame.origin.y + dy; 
    dy += ddy; 
    bird.frame = CGRectMake(bird.frame.origin.x + 1, birdY, 
          bird.frame.size.width, bird.frame.size.height); 
} 

Wenn Sie eine Menge Animation wollen, können Sie auch OpenGL betrachten, oder eine benutzerdefinierte UIView Unterklasse zu schreiben, die die drawRect: Methode überschreibt, das könnte ein wenig effizienter sein (als der obige Code).

Verwandte Themen