L'uomo a piedi esempio:
ho affrontato esattamente lo stesso compito, ma ho dovuto fare un ragno in esecuzione che è 6 gambe a piedi e ha 12 fotogrammi. In realtà era molto difficile da fare e mi ci sono voluti alcuni mesi per perfezionare. Il fatto è che l'esempio di uomo di veglia è di solito fatto impostando una serie di fotogrammi dell'immagine (prima gamba, ultima gamba) in una proprietà animationImages di UIImageView. Quindi si attiva e disattiva l'animazione insieme al movimento del personaggio a destra ea sinistra e creando così un'illusione di camminare. Ora il grande problema sorge quando vuoi creare un'illusione di accelerazione. Non c'è modo di modificare la durata dell'animazione DURANTE la riproduzione dell'animazione e questa è una battuta d'arresto importante che è molto difficile da superare.
Ecco il codice che ho prodotto per superare questo problema:
Qui si può definire un array con i telai delle gambe a piedi, cornice per passo.
animationImagesSpider = [NSArray arrayWithObjects:
[UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], nil];
Qui si collega la matrice alla UIImageView:
imgViewSpider = [[UIImageView alloc] initWithFrame:CGRectMake(200,410,100,145)];
imgViewSpider.animationImages = animationImagesSpider;
Ora, se è sufficiente chiamare [imgViewSpider startAnimating]; questo avvierà l'animazione ad una velocità costante fino a quando non la fermerai. Per superare questo ho usato una ricorsione che svolge una breve animazione per ogni passo e questo permette di regolare la durata tra ogni passi:
- (void) spiderRun {
imgViewSpider.animationDuration= 0.51-(accSp/3.5);
[imgViewSpider setAnimationRepeatCount:222]; /// this is a dummy value that has no effect because animtion ends after the first frame
[imgViewSpider startAnimating];
[self performSelector:@selector(spiderRun) withObject:nil afterDelay: 0.5-(accSp/3.5)];
}
Cambiando costantemente il valore accSp, posso controllare la velocità di passeggiata durante la camminata .
in realtà penso che intendesse la traduzione, in traduzione matematica si sta spostando un oggetto in una diversa coordinata – MCKapur