我正在尝试在游戏开始时为41块砖块制作动画,使其落入距离屏幕顶部6x7的网格中,但到目前为止,我刚刚能够将砖块砸到同一块砖块上位置。如果我删除动画部分,则所有砖块都会出现在网格上。砖块应该在前一块砖之后以毫秒或两秒的速度落下,以产生步骤的效果。
我知道这个位置是问题,但我不知道如何修复它。
-(void)AnimateBricksFalling
{
self.allowTouch = NO;
for(int i =0; i< GRID_WIDTH ; i++)
{
for(int j =0; j< GRID_HEIGHT ; j++)
{
Bricks * d = grid[i][j];
d.mySprite.position = ccp(168,1000); //the position is the issue, making all the bricks to fall down to the same position
CCMoveTo *move = [CCMoveTo actionWithDuration:0.5 position:ccp(168,91)]; //the position is the issue, making all the bricks to fall down to the same position
[d.mySprite runAction: move];
}
}
}
答案 0 :(得分:0)
你可以为每个砖使用延迟,类似这样的
[d.mySprite runAction: [d.mySprite runAction: [Sequence actions:
[DelayTime actionWithDuration: waitTime],
[CCMoveTo actionWithDuration:0.5 position:ccp(168,91)],
nil]]];
然后创建一个randon时间并将其设置为waitTime变量。 然后每个调用将移动一个砖块,然后等待,然后再次执行。
希望它有所帮助!