【发布时间】:2011-03-03 00:09:28
【问题描述】:
我有一个我写的游戏。我正准备将其称为完成,但我发现了一个错误。基本上游戏会随着你玩的时间越长而变慢。我的猜测是这是由于仍在屏幕外绘制的精灵。我将粘贴下面的代码,但基本上精灵是在“addNewBall”方法中创建的。在这种方法中,它被添加到计算其运动的数组中。在球到达屏幕外的位置后,它会从阵列中移除,这会导致它停止移动,但它仍然被“拉”到屏幕外。如何删除精灵以便处理器不再计算它。提前感谢您的帮助!
制革商
代码:
-(void) addNewBall {
NumberOfBalls = NumberOfBalls + 1;
int RandomXPosition = (arc4random() % 240) + 40;
NSString *BallFileString = @"OrangeBall.png";
switch (arc4random() % 5) {
case 1:
BallFileString = @"OrangeBall.png";
break;
case 2:
BallFileString = @"GreenBall.png";
break;
case 3:
BallFileString = @"YellowBall.png";
break;
case 4:
BallFileString = @"PinkBall.png";
break;
case 0:
BallFileString = @"BlueBall.png";
break;
}
Ball = [CCSprite spriteWithFile:BallFileString];
Ball.position = ccp(RandomXPosition, 520);
BallIsMoving = YES;
[self addChild:Ball z:10];
[AllObjectsArray_ addObject:Ball];
[BallArray_ addObject:Ball];
}
//And here is where it is removed...
if (Ball.position.y <= -100) {
[BallArray_ removeObject: Ball];
}
【问题讨论】:
标签: iphone objective-c xcode cocos2d-iphone