Как заставить шар падать случайно в iPhone - PullRequest
0 голосов
/ 27 декабря 2010

С полным комплиментом позвольте мне начать с объявления, что я новичок в программировании для iPhone. Поэтому я хотел бы попросить помощи в решении вопроса о том, как реализовать анимацию, когда «а» шар случайно падает с верхней части экрана iPhone. Атрибут мяча таков, что он имеет разные размеры, скорость и тоже может отскакивать, т. Е. Также происходит столкновение.

Я пытаюсь использовать только изображение шара, и я добавил изображение шара через Interface Builder (IB) и подключил UIImageView к владельцу файлов в IB, и я безуспешно пытался получить доступ к изображению программно, добавляя Ключевое слово IBOutlet для файла .h (см. Код .h и .m ниже). Когда я запускаю код, все, что я получаю, это изображение, появляющееся и мгновенно исчезающее. как заставить этот шар падать случайно при некотором скачке или столкновении.

Если быть точным, я бы хотел, чтобы анимация, подобная той, которая была получена в игре iPhone, падала шарики ... когда шарики падали и все еще отскакивали.

Заранее спасибо за помощь CHEERS !!

***The .h file***

@interface TestBallsViewController : UIViewController {

  IBOutlet UIImageView *ball;

 CGPoint ballMovement;

 double size;
 double speed;

}


@property(nonatomic, retain)IBOutlet UIImageView *ball;


- (void)initializeTimer;


- (void)animateBall:(NSTimer *)theTimer;



**The .m file**

@implementation TestBallsViewController

@synthesize ball;


- (void)dealloc {

 [ball release];

    [super dealloc];
}



- (void)viewDidLoad {
 [super viewDidLoad];
 ballMovement = CGPointMake(2,2);  
 [self initializeTimer];

}



- (void)initializeTimer
 { 
  float theInterval = 0.3;

  [NSTimer scheduledTimerWithTimeInterval:theInterval target:self

                   selector:@selector(animateBall:) userInfo:nil repeats:YES];
}



- (void)animateBall:(NSTimer *)theTimer

 {
  ball.center = CGPointMake(ball.center.x+ballMovement.x, 
                                                       ball.center.y+ballMovement.y);


     int startX =arc4random()%100;
                   int endX = arc4random()%320; 
     ball.frame= CGRectMake(startX, -100, 15.0 * size, 15 * size);
                   ball.frame = CGRectMake(endX, 480, 15.0 * size, 15.0 * size);



  if(ball.center.x > 300 || ball.center.x < 20) ballMovement.x = 
                                                                     - ballMovement.x;
  if(ball.center.y > 440 || ball.center.y < 40) ballMovement.y =
                                                                     - ballMovement.y;

 }

1 Ответ

0 голосов
/ 27 декабря 2010
- (void)animateBall:(NSTimer *)theTimer

 {
  [UIView beginAnimations:nil context:nil];
  [UIView setAnimationDuration:1.0];
  ball.center = CGPointMake(ball.center.x+ballMovement.x, 
                                                       ball.center.y+ballMovement.y);


     int startX =arc4random()%100;
                   int endX = arc4random()%320; 
     ball.frame= CGRectMake(startX, -100, 15.0 * size, 15 * size);
                   ball.frame = CGRectMake(endX, 480, 15.0 * size, 15.0 * size);



  if(ball.center.x > 300 || ball.center.x < 20) ballMovement.x = 
                                                                     - ballMovement.x;
  if(ball.center.y > 440 || ball.center.y < 40) ballMovement.y =
                                                                     - ballMovement.y;
  [UIView commitAnimations];

 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...