我在3images(星星)上有这个代码在我的游戏上下降。星号代码之间的差异是执行时的延迟时间。
[self performSelector:@selector(star1Animation) withObject:nil afterDelay:2.0];
star1 = 2.0秒,star2 = 4.0秒,star3 = 6.0秒
这里是Code .m文件
-(void)star1Animation
{
// drop1 Down Movement Speed
star1tm = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(star1Code) userInfo:nil repeats:YES];
}
-(void) star1Code
{
star1.center = CGPointMake(star1.center.x, star1.center.y +2);
if (star1.center.y > 590) {
ramdomPosition = arc4random() %265;
ramdomPosition = ramdomPosition +54;
star1.center = CGPointMake(ramdomPosition, -60);
// Time to Show drop1 Again in x Seconds
[[NSRunLoop currentRunLoop]runUntilDate:[NSDate dateWithTimeIntervalSinceNow:2.0]];
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self performSelector:@selector(star1Animation) withObject:nil afterDelay:2.5];
[self performSelector:@selector(star2Animation) withObject:nil afterDelay:4.5];
[self performSelector:@selector(star3Animation) withObject:nil afterDelay:6.5];
}
答案 0 :(得分:1)
在三个不同但相关的时间制作三个动画的正确方法是使用单个分组动画(CAAnimationGroup)。 - 正如你已经被告知的那样,你不应该使用计时器或运行循环来制作动画;相反,停下来学习iOS动画的实际工作方式。它内置于系统中,功能非常强大; iOS 想要帮助你做动画,所以不要挫败它并尝试“自己动手”,了解它是如何做到的,并利用其强大的力量和轻松使用。
您还将发现(如果您将在编码之前花时间学习),在iOS 7中,UIKit Dynamics极大地促进了“跌倒”等标准物理移动。