2009-08-18 6 views
0

Maintenant je sais comment déplacer un objet dans une certaine direction à une vitesse définie, mais je ne suis pas sûr de savoir comment déplacer une imageview d'un CGPoint à un autre le long d'un chemin défini sans utiliser d'animations. être interactif. Il existe également un moyen d'appliquer une pente pendant qu'elle se déplace du point A vers le point B, de sorte qu'elle semble se courber lorsqu'elle se déplace. Ce que j'essaie de faire, c'est un oiseau qui se dirige vers le sol et qui s'envole dans les airs.Déplacer une imageview le long d'un chemin

Répondre

0

Vous pouvez le faire en utilisant un NSTimer qui appelle périodiquement une de vos méthodes qui déplace légèrement l'oiseau (votre image animée) à chaque fois.

Quelques exemples de code pour déplacer un objet le long d'un arc parabolique:

// 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); 
} 

Si vous voulez beaucoup d'animation, vous pouvez également envisager d'utiliser OpenGL, ou d'écrire une sous-classe personnalisée UIView qui remplace la méthode drawRect:, ce qui pourrait être un peu plus efficace (que le code ci-dessus).

Questions connexes