2009-10-08 3 views
2

Из моего вопроса здесь,Перемещение спрайтов (более одного) в то время


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

Я прошел через следующую ссылку.

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

Ответ заключается в следующем.

Spawn

Действие Икра позволяет запускать несколько действий одновременно. Продолжительность действия Spawn будет длительностью самого длинного под-действия.

ID действие = [Spawn действия: [JumpBy actionWithDuration: 2 позиции: CCP (300,0) высота: 50 прыжков: 4], [RotateBy actionWithDuration: 2 Угол обзора: 720], ноль];

[спрайт runAction: действие];

1

Попробуйте использовать параллельные NSThreads, по одному для каждого спрайта, который необходимо перенести.

Смежные вопросы