2011-04-20 46 views
0

我想要做的是每十秒鐘在屏幕外創建一個球,創建它時移動到屏幕中心。我怎樣才能做到這一點?xcode iphone球動畫

+0

VOUS devez VOUS rendreà每個槽口問題闕VOUS avez似曾相識demandé et cliquez sur la caseàcocher par laréponsela plusappareséeàl'accrepter。 Aider les gensàobtenir la reconnaissance。 Si vous n'avez pas「accepter」lesréponsesen cochant les gens sont moins susceptibles d'aider。 Vous devez augmenter votre「accepter taux«aussi proche que possible de 100% – 2011-04-26 20:40:22

回答

0

在您的視圖控制器設置了一個UIImageView屬性爲你的球,contruct球並確保它的起始位置遠離creen的可視區域,然後使用一個NSTimer它將觸發每十秒這卡拉斯一方法將屏幕上的球移動到中心。

-(void)viewDidLoad{ 
    NSTimer *ballTimer = [NSTimer timerWithTimeInterval:10.0 
               target:self 
               selector:@selector(moveBall) 
               userInfo:nil 
               repeats:YES]; 

    [[NSRunLoop mainRunLoop] addTimer:ballTimer forMode:NSRunLoopCommonModes]; 

    myBall = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MyBallImageFile.png"]]; 
    myBall.center = CGPointMake(320/2, [self randNumBetween:-50:-100]); 
    [self.view addSubview:myBall]; 
} 

-(void)moveBall{ 
    myBall.center = CGPointMake(320/2, [self randNumBetween:-50:-100]); 
    [UIView animateWithDuration:5.0 animations:^{ 
     myBall.center = CGPointMake(320/2, 480/2); 
    }]; 
} 

---------- ------------編輯

- (CGFloat)randNumBetween:(CGFloat) min :(CGFloat) max{ 
    CGFloat difference = max - min; 
    return (((CGFloat) rand()/(CGFloat)RAND_MAX) * difference) + min; 
} 
+0

是的,但我想要一個屏幕外的隨機位置 – 2011-04-20 09:27:54

+0

我添加了一個函數,生成隨機數,請檢查我的編輯 – Sabobin 2011-04-20 09:33:58

+0

非常感謝你 – 2011-04-20 09:36:15

0
- (void)viewDidLoad { 
    [super viewDidLoad]; 

    myBallImage = [[UIImage imageNamed:@"ball.png"] retain]; 
    myTimer = [NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(addBallToScreen) userInfo:nil repeats:YES]; 
} 
- (void)viewDidUnload { 
    [myBallImage release]; 
    [myTimer invalidate]; 
} 

- (void)addBallToScreen { 
    //Create the imageView 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:myBallImage]; 
    imageView.transform = CGAffineTransformMakeTranslation(1000, 1000); 
    [self.view addSubview:imageView]; 
    [imageView release]; 

    //Animate the image view 
    [UIView beginAnimations:nil context:nil]; 
    imageView.transform = CGAffineTransformMakeTranslation(50, 50); 
    [UIView commitAnimations]; 
} 
+0

是的,但我想要在屏幕之外的任意位置 – 2011-04-20 09:27:10

+0

只需用隨機值(例如使用arc4rand)替換imageView.transform = CGAffineTransformMakeTranslation(1000,1000) – ingham 2011-04-20 20:59:51