создание цикла с несколькими спрайтами?

у меня есть столбец спрайтов, когда один спрайт уходит с экрана, я хочу, чтобы один и тот же спрайт обернулся вокруг противоположной стороны, чтобы два спрайта отображались одновременно, когда один перемещается по экрану, другой выходит на экран, а другой спрайт что уходит больше не видно. Мне сказали сделать 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];
            }
        }
    }

person Dangermouse    schedule 29.03.2011    source источник


Ответы (1)


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

person lins314159    schedule 29.03.2011
comment
я хотел снова запустить код, так как это полный беспорядок, нужен более простой способ, чтобы это произошло, когда tsprite / bsprite заходит на страницу, они должны быть сенсорными, и когда они отключаются, спрайт, который ушел, должен вернуться снова, поэтому я хотел, чтобы кто-то помог мне с самого начала, так как в моем коде везде слишком много проблем. - person Dangermouse; 30.03.2011