나는 내가 쓴 게임이있다. 나는 그것을 완료라고 부르겠다. 그러나 나는 버그를 발견했다. 기본적으로 게임은 더 오래 플레이 할수록 느려집니다. 내 생각 엔이 여전히 화면에서 그려진 스프라이트 때문입니다. 아래에 코드를 붙여 넣으 려하지만 기본적으로 스프라이트는 "addNewBall"메서드에서 만들어집니다. 이 방법에서는 모션을 계산하는 배열에 추가됩니다. 볼이 화면에서 벗어난 위치에 도달하면 배열에서 제거되어 움직이지 않게되지만 여전히 화면에서 "그려진"상태입니다. 프로세서가 더 이상 스프라이트를 계산하지 않도록 스프라이트를 제거하려면 어떻게해야합니까? 도와 주셔서 미리 감사드립니다.화면 cocos2d 아이폰에서 스프 라이트를 제거 하시겠습니까?
태너
코드 :
-(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];
}
아니, 나는 많은 노드에있는 아이들, 그리고 행동 할 수있는 사람이 같은 배열에 있습니다. 도와 주셔서 감사합니다!! –
도움이 될 수있어서 기쁩니다. 문제가 해결되면 미래의 독자를 위해이 대답을 수락 된 것으로 표시해야합니다. –