Как повторить (продолжить) TileMap в Cocos 2d? - PullRequest
4 голосов
/ 05 августа 2011

Я сделал игру, используя 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 ]

4 голосов
/ 05 августа 2011

Разделите вашу карту плиток на две меньшие карты плиток и поместите их одну рядом друг с другом.

Затем в вашем методе обновления проверьте их позиции и, когда первая выходит за экран, перемещайте ее после второй.Когда второй снимается с экрана, переместите его после первого.

1 голос
/ 17 августа 2011

Вы можете использовать одну карту, которая больше экрана, а затем каждые 32 пикселя в любом заданном направлении сдвигать карту на 32 пикселя назад. Это полезно для бесконечных карт. Требуется один объект и текстура, плюс работает как для вертикального, так и для горизонтального движения. Это может быть трудно правильно рассчитать время, но может быть и сценарий с несколькими картами.

(Я проголосовал за ответ Фичека, потому что он самый распространенный.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...