Der Mann zu Fuß Beispiel:
ich mit genau der gleichen Aufgabe beschäftigt habe, aber ich hatte eine Lauf Spinne zu tun, die 6 Bein zu Fuß ist und 12 Frames. Es war wirklich sehr schwierig zu machen und dauerte einige Monate, um zu perfektionieren. Die Sache ist, dass das Beispiel des wachenden Mannes normalerweise getan wird, indem man ein Array von Bildrahmen (Erstes Bein, Letztes Bein) auf eine animationImages-Eigenschaft von UIImageView setzt. Dann schalten Sie die Animation zusammen mit dem sich bewegenden Charakter nach rechts und links ein und erzeugen dadurch eine Illusion des Gehens. Jetzt entsteht das große Problem, wenn Sie eine Illusion der Beschleunigung erstellen möchten. Es gibt keine Möglichkeit, die Animationsdauer während der Animationswiedergabe zu ändern, und dies ist ein schwerer Rückschlag, der nur schwer zu überwinden ist. Hier
ist der Code, den ich produziert, dieses Problem zu überwinden:
Hier definieren Sie ein Array mit den Laufbein Bilder, Bilderrahmen pro Schritt.
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];
Hier legen Sie das Array an die UIImageView:
imgViewSpider = [[UIImageView alloc] initWithFrame:CGRectMake(200,410,100,145)];
imgViewSpider.animationImages = animationImagesSpider;
Nun, wenn Sie rufen Sie einfach [imgViewSpider startAnimating]; Dies startet die Animation mit einer konstanten Geschwindigkeit, bis Sie sie stoppen. Um dies zu überwinden habe ich eine Rekursion verwendet, die eine kurze Animation für jeden Schritt spielt und dies ermöglicht es, die Dauer zwischen dem einzelnen Schritten einstellen:
- (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)];
}
Durch ständig den accSp Wert zu ändern, kann ich die Gehgeschwindigkeit Kontrolle während der Wanderung .
eigentlich denke ich, er meinte Übersetzung, in Mathematik Übersetzung bewegt ein Objekt auf eine andere Koordinate – MCKapur