我使用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]];
}
这样可以正常工作,地图向下移动直到地图高度,之后地图将消失。现在我想继续重复地图。
答案 0 :(得分:4)
将您的瓷砖地图分成两个较小的瓷砖地图,并将它们彼此相邻。
然后在您的更新方法中检查他们的位置,当第一个离开屏幕时,在第二个之后移动它。当第二个离开屏幕时,在第一个之后移动它。
答案 1 :(得分:1)
您可以使用比屏幕大的单个地图,然后在任何给定方向上每32px,将地图移回32px。这对无限地图很有用。它需要一个对象和纹理,并且可以用于垂直和水平运动。正确地计时可能会很痛苦,但多地图情景也是如此。
(我赞成fichek的答案,因为它是最常见的。)