我试图让多个 Ball 对象在屏幕上形成并弹跳。我有一个工作正常,但我在添加更多时遇到问题。理想情况下,球的数量会有所不同,但现在我试图将两个放入数组中以更改其余代码。
我的问题是一切都编译并运行良好,但我仍然只有一个球。这就是我怀疑问题出现的地方。
我也觉得在 viewDidLoad 中这样做是不正确的,但我不确定它实际上属于哪里。
viewDidLoad:
- (void)viewDidLoad {
[super viewDidLoad];
balls = [[NSMutableArray alloc] init];
CGPoint newPos = CGPointMake(5,5);
for(int i = 0; i < 2; i++) {
[balls addObject:[[[Ball alloc] init] autorelease]];
}
[[balls objectAtIndex:1] setPosition:newPos];
[NSTimer scheduledTimerWithTimeInterval:1.0 / 30.0 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
}
- (void)onTimer
{
for(int i = 0; i < [balls count]; i++) {
Ball *b = [balls objectAtIndex:i];
[b update];
[(BallView *)self.view refresh:b];
}
}
- (void)refresh:(Ball *)aBall {
ball = aBall;
[self setNeedsDisplay];
}
我已经添加了我的 onTimer,我认为添加创建球的延迟足以使这成为一个问题。所有更新都是根据加速度计/与屏幕边缘的碰撞来改变速度/方向。