一次移动Sprite(多于一个)

时间:2009-10-08 01:05:56

标签: iphone cocos2d-iphone sprite

来自我的问题,


http://iphonegamedev.stackexchange.com/questions/82/moving-sprites-more-then-one-at-a-time


-(void)moveBox:(NSTimer*)myTimer{
    float endx=[[[myTimer userInfo] valueForKey:@"endX"] floatValue];
    float endy=[[[myTimer userInfo] valueForKey:@"endY"] floatValue];
    float timing=[[[myTimer userInfo] valueForKey:@"timeForMove"] floatValue];
    Sprite *sp=(Sprite*)[[myTimer userInfo] valueForKey:@"objSprite"];
    [sp runAction: [MoveBy actionWithDuration:timing position:ccp(endx,endy)]];
}

我在我的应用程序中使用上面的代码。但我不需要这种方法。

以上代码用于移动精灵。

我在上面放置代码只是因为你可以想象我需要什么。

现在我想一次移动10个精灵。

    [sp runAction: [MoveBy actionWithDuration:timing position:ccp(endx,endy)]];

上面一行 - 一次移动一个精灵。

如何一次性将所有精灵全部移动到一起。

为什么需要? :

你可能已经看过俄罗斯方块游戏了。

如果最底部的行完成,那么上面的所有行都会向下移动第一步。

我想做同样的事。

如何?

2 个答案:

答案 0 :(得分:2)

我已经通过以下链接。

http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:actions_composition

答案如下。

菌种

Spawn操作允许您同时运行多个操作。 Spawn动作的持续时间将是最长子动作的持续时间。

id action = [Spawn action:         [JumpBy actionWithDuration:2位置:ccp(300,0)身高:50跳:4],         [RotateBy actionWithDuration:2 angle:720],         零];

[sprite runAction:action];

答案 1 :(得分:1)

尝试使用并发NSThreads,每个精灵需要移动一个。