如何在Cocos2d中重复(连续)TileMap?

时间:2011-08-05 09:20:34

标签: iphone ipad cocos2d-iphone

我使用cocos 2d制作了一款游戏。

我制作了一个基于平铺的地图,我希望在地图完成时重复该地图。

我的问题是在游戏中,地图第一次完全移动但我想继续重复它。

我使用以下代码移动地图。

-(void) moveMap
{
    // Create the actions   
    id actionMove = [CCMoveTo actionWithDuration:10.0 position:ccp(-1,(-self.tileMap.contentSize.height))];
    id actionMoveDone = [CCCallFuncN actionWithTarget:self selector:@selector(setViewpointCenter:)];
    [self.tileMap runAction:[CCSequence actions:actionMove, actionMoveDone, nil]];
}

这样可以正常工作,地图向下移动直到地图高度,之后地图将消失。现在我想继续重复地图。

2 个答案:

答案 0 :(得分:4)

将您的瓷砖地图分成两个较小的瓷砖地图,并将它们彼此相邻。

然后在您的更新方法中检查他们的位置,当第一个离开屏幕时,在第二个之后移动它。当第二个离开屏幕时,在第一个之后移动它。

答案 1 :(得分:1)

您可以使用比屏幕大的单个地图,然后在任何给定方向上每32px,将地图移回32px。这对无限地图很有用。它需要一个对象和纹理,并且可以用于垂直和水平运动。正确地计时可能会很痛苦,但多地图情景也是如此。

(我赞成fichek的答案,因为它是最常见的。)