0

私のiPhoneアプリケーションには、いくつかの画像があります。いくつかの小さな正方形の画像を考えてみましょう。私が欲しいのは、ランダムな時間に画面の上部から小さなオブジェクトが表示され、下部から画面を離れることです。たとえば、オブジェクトは x:30 y:0 の点からランダムに出現し (x の値はランダムでなければなりません)、x:30 y:460 からアニメーションで離れます。

私は 2D レーシング ゲームをプログラミングしていますが、それらは車です。それが明らかであることを願っています。

編集: 番号が別のものに属するフレームを変更しようとしました。しかし、画像のフレームを取得できず、位置をランダムに複数回生成する方法もわかりませんでした。私はそれをviewDidLoadに置くことを計画していたので。

[UIView beginAnimations:@"myAnimation" context:nil];
CGRect Frame = image.frame;
if(Frame.origin.y == 340){
    Frame.origin.y = 260;
}else{
    Frame.origin.y = 340;
}
image.frame = Frame;
[UIView commitAnimations];
4

1 に答える 1

2

あなたのコード例は、あなたが求めているものを示していません。また、あなたが何を望んでいるのかを推測することも非常に困難です。

これがあなたが求めたものの私の文字通りの解釈です

for (int i = 0; i < 100; i++) {

    CGRect startFrame = CGRectMake(arc4random_uniform(320), -50, 50, 50);
    CGRect endFrame   = CGRectMake(arc4random_uniform(320),  
                                   CGRectGetHeight(self.view.bounds) + 50, 
                                   50, 
                                   50);

    UIView *animatedView = [[UIView alloc] initWithFrame:startFrame];
    animatedView.backgroundColor = [UIColor redColor];

    [self.view addSubview:animatedView];

    [UIView animateWithDuration:2.f
                          delay:i * 0.5f
                        options:UIViewAnimationCurveLinear
                     animations:^{
                         animatedView.frame = endFrame;
                     } completion:^(BOOL finished) {
                         [animatedView removeFromSuperview];
                     }];
}

これを貼り付けると、viewDidAppear:100 個のオブジェクトが思いどおりにアニメーション化されます。明らかにこれは非常に非効率的であり、ビューのリサイクルなどを検討したい場合がありますが、これはUIViewいくつかのランダムなポイントでアニメーションを使用してビューをアニメーション化する方法を示しています

于 2012-08-23T09:17:36.707 に答える