создать цикл с несколькими спрайтами? - PullRequest
2 голосов
/ 29 марта 2011

У меня есть столбец спрайтов, когда один спрайт уходит с экрана. Я хочу, чтобы один и тот же спрайт оборачивался вокруг противоположной стороны, так чтобы два спрайта отображались одновременно, когда один движется по экрану, другой появляется на экране и другой спрайт, который исчезает, больше не виден. Мне сказали сделать ccnode, в котором все, что я здесь делаю, пока что мой код, но ничего из этого не работает, поэтому я думаю, что мне нужно будет начинать все заново. Вот ссылка на мой последний вопрос по этому вопросу для получения дополнительной информации: При скольжении спрайта, если спрайт исчезает со стороны, он переходит на противоположную сторону?

вот мой код в любом случае:

    for (int i =0; i<16; ++i) {
        MyNode *currentSprite = [c1array objectAtIndex:i];
        if (currentSprite.contentSize.height>=320 || currentSprite.position.y-currentSprite.contentSize.height/2<=0 ){
            MyNode *Bsprite = currentSprite;
            MyNode *Tsprite = currentSprite;
            Bsprite.scale = 1.0;
            Tsprite.scale = 1.0;

            if(currentSprite.position.y >=253){
            Bsprite.position = ccp(currentSprite.position.x,-35);
                [self addChild:Bsprite];
                Bsprite.visible = TRUE;
            }
            if (currentSprite.position.y <=0) {
                Tsprite.position = ccp(currentSprite.position.x,324);
                [self addChild:Tsprite];
                Tsprite.visible = TRUE;
            }
            MyNode *isChanging;
            if ((Tsprite.visible == TRUE && currentSprite.visible == TRUE) || (Bsprite.visible == TRUE && currentSprite.visible == TRUE)) {
                isChanging = TRUE;
            }
            if (isChanging == FALSE) {
                [self removeChild:Tsprite cleanup:YES];
                [self removeChild:Bsprite cleanup:YES];
            }
        }
    }

1 Ответ

0 голосов
/ 30 марта 2011

BSprite и TSprite являются указателями на один и тот же объект (currentSprite).На самом деле вам нужны два отдельных объекта, либо путем клонирования currentSprite, либо путем создания другого массива таким же образом, как c1array.

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