【问题标题】:creating a loop with multiple sprites?创建一个包含多个精灵的循环?
【发布时间】:2011-03-29 12:33:44
【问题描述】:

当一个精灵离开屏幕时,我有一列精灵另一个熄灭的精灵不再可见。有人告诉我要创建一个 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];
            }
        }
    }

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我想重新开始代码,因为它完全是一团糟,需要一种更简单的方法来允许这种情况发生,因为 tsprite/bsprite 进入需要启用触摸的页面,并且当它们关闭时,关闭的精灵必须重新启动,所以我希望有人从一开始就帮助我,因为我的代码到处都有太多问题。
    猜你喜欢
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多