创建一个包含多个精灵的循环?

时间:2011-03-29 12:33:45

标签: objective-c for-loop cocos2d-iphone css-sprites

我有一个精灵列,因为一个精灵离开屏幕我希望相同的精灵环绕对面,这样两个精灵同时显示,一个屏幕移动,另一个进入屏幕,另一个停止的精灵不再可见。有人告诉我做一个ccnode,在这里做的一切都是我的代码到目前为止,但没有一个工作,所以我想我需要从头开始。 以下是关于此问题的最后一个问题的链接:When sliding sprite, if sprite disappears off the side, it will wrap around to the opposite side?

这是我的代码:

    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 :(得分:0)

BSprite和TSprite是指向同一对象(currentSprite)的指针。实际上你需要两个独立的对象,可以通过克隆currentSprite或者以与c1array相同的方式创建另一个数组。