-3

好的,我昨天发布了一个问题,我猜这不是真正的问题。问题是,当我执行第一个 NSLOG 时,它显示数组长度为 3。然后我将对象 Snake(它包含两个数组并且是 CCSprite 的子类)添加到数组主体。然后,总是在同一个init中,最后两个NSLOG,和前两个一样,告诉我我的两个数组现在长度为0。我不明白这是怎么回事。请帮忙!

-(id)init{
if ((self = [super initWithColor:ccc4(255, 255, 255, 255)] ))
{
    SnakePart * snake;
    snake = [[SnakePart alloc]init];

    body = [[NSMutableArray alloc] init];
    NSLog(@"Grandeur du tableau : %i", [[snake arrayOfDirectionChangingPoint] count]);
    NSLog(@"Grandeur du tableau : %i", [[snake arrayOfPartDirection] count]);

    CGSize winSize = [[CCDirector sharedDirector] winSize];
    direction = HAUT;

    snake = [SnakePart spriteWithFile:@"snakeMainSquare.png"];
    snake.position = ccp(winSize.width/2, winSize.height/2 - 75);
    [self addChild:snake];
    [body addObject:snake];

    [self addBodyPart:snake.position.x :(snake.position.y - (snake.contentSize.height * (body.count)))];
    [self addBodyPart:snake.position.x :(snake.position.y - (snake.contentSize.height * (body.count)))];

    SnakePart* head = ((SnakePart*)body[0]);

    NSLog(@"Grandeur du tableau : %i", [[head arrayOfDirectionChangingPoint] count]);
    NSLog(@"Grandeur du tableau : %i", [[head arrayOfPartDirection] count]);
4

1 回答 1

0

我自己才发现的。我改变了这一行:

snake = [SnakePart spriteWithFile:@"snakeMainSquare.png"];

到:

[snake setTexture:[[CCTextureCache sharedTextureCache] addImage:@"snakeMainSquare.png"]];

我猜 spriteWithFile 有点像擦除我的蛇数组,因为它就像一个初始化。

于 2013-01-14T22:54:44.160 回答