0

これは機能します:

for (Object *oneObj in allObjects) {

    id moveAction = [CCMoveTo actionWithDuration:0.3f position:ccp(tx, ty)];
    id rotateAction = [CCRotateTo actionWithDuration:0.3 angle:0.0f];

    id action = [CCSpawn actions:moveAction, rotateAction, nil];
    id sequence = [CCSequence actions: action,
                                     [CCDelayTime actionWithDuration:0.1f],
                                     nil];

    [oneObj runAction:sequence];
}

これは機能しません(1つのオブジェクトだけがこのオブジェクトによって移動されます):

id moveAction = [CCMoveTo actionWithDuration:0.3f position:ccp(tx, ty)];
id rotateAction = [CCRotateTo actionWithDuration:0.3 angle:0.0f];

id action = [CCSpawn actions:moveAction, rotateAction, nil];
id sequence = [CCSequence actions: action,
                          [CCDelayTime actionWithDuration:0.1f],
                          nil];

for (Object *oneObj in allObjects) {
     [oneObj runAction:sequence];
}

なぜ?

4

1 に答える 1

2

1つのアクションは1つのノードでのみ実行できるためです。各オブジェクトがシーケンスの独自のコピーを実行するように、シーケンスをコピーする必要があります。

[oneObj runAction:[sequence copy]];
于 2013-03-06T19:21:20.740 に答える