CCMoveTo не влияет на мои CCSprites - PullRequest
0 голосов
/ 10 мая 2011

все. У меня есть некоторая функция "tetrisl" в этой функции. Я хочу переместить спрайты тетриса вниз:

-(void)tetrisL:(ccTime)dt {

    Tetris *s = [[Tetris node]initWithArraySize:4];
    [s createL];
    for (CCSprite *new in s.tetrisArray) {
        [self addChild:new];

        id actionMove = [CCMoveTo actionWithDuration:3 position:ccp(new.position.x,0)];
        [new runAction: actionMove];

    }
    [s release];
}

Но это не работает. Я думаю, потому что я пытаюсь перемещать разные спрайты в одном действии. Как я могу это исправить? Спасибо

Вот класс Тетрис

@interface Tetris : CCNode {

    NSMutableArray *tetrisArray;
    Blocks *tempBlock;

}
@property (nonatomic, retain) NSMutableArray *tetrisArray;
@property (nonatomic, retain) Blocks *tempBlock;
-(id)initWithArraySize:(int)sz;
-(void)createL;


@implementation Tetris
@synthesize tetrisArray;
@synthesize tempBlock;

-(id)initWithArraySize:(int)sz {

    if( (self=[super init] )) {
        tetrisArray = [[NSMutableArray alloc]initWithCapacity:sz];

    }
    return self;
}
-(void)createL {

    int xPos = 10;
    int yPos = 460;
    for (int i = 0; i < 4; i++) {
        tempBlock = [[Blocks node]initWithType:1];
        tempBlock.blockSprite.position = ccp(xPos,yPos);
        [tetrisArray addObject:tempBlock.blockSprite];
        xPos = xPos + 26;
        [tempBlock release];

    }

}

-(void)dealloc {

    [tempBlock release];
    [tetrisArray release];
    [super dealloc];
}

Ответы [ 2 ]

0 голосов
/ 09 октября 2014

Запрещенные спрайты не могут выполнять одно и то же действие в одно и то же время, поэтому вы должны скопировать это действие, как показано в следующем коде:

  sprite->runAction((CCActionInterval*)aciotn->copy->autoRelease());
0 голосов
/ 10 мая 2011

Вы не можете назначить одно действие различным спрайтам.Одно действие - один спрайт.Вы можете использовать функцию копирования действия для дублирования действий.

Но в вашем случае действие создается в цикле, поэтому это должны быть разные действия ... может быть проблема в другом месте.

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