Примечание: для этого я использую программу под названием spritebuilder, которая позволяет мне создавать игру с меньшим количеством кода, чем обычно требуется. Если вы знаете решение, состоящее из всего кода, то обязательно поделитесь им :)
Кроме того, для этого вопроса я следил за учебником по этой ссылке: Создайте свой собственный клон Flappy Bird. Просто прокрутите вниз до части, которая говорит: «Замкните землю».
Итак, вот моя проблема. В настоящее время я работаю над игрой, и я создал камеру, которая прокручивается по вертикали со спрайтом, который я создал, однако мне нужно определенное изображение для зацикливания. Когда изображение покидает нижнюю часть экрана, я бы хотел, чтобы оно бесконечно возвращалось к верхней части экрана. Для этого я создал два одинаковых изображения (в данном случае это кора дерева). Один будет на экране, а другой будет за кадром, поэтому, когда первое изображение покидает экран, второе заменяет его (бесшовно). Я создал два объекта для изображений и присвоил им имена _ground1 и _ground2, а также создал NSArray для их хранения. (Пожалуйста, обратитесь к ссылке выше, если она несколько запутана) Вот код, который я имеют:
CCNode *_ground1;
CCNode *_ground2;
NSArray *_grounds;
for (CCNode *ground in _grounds) {
// get the world position of the ground
CGPoint groundWorldPosition = [_physicsNode convertToWorldSpace:ground.position];
// get the screen position of the ground
CGPoint groundScreenPosition = [self convertToNodeSpace:groundWorldPosition];
// if the left corner is one complete width off the screen, move it to the right
if (groundScreenPosition.y <(-1 * ground.contentSize.height)) {
ground.position = ccp(ground.position.x , ground.position.y + 2 * ground.contentSize.height);
}
По какой-то причине, когда я пытаюсь это сделать, это не работает. что происходит, так это то, что камера будет двигаться вертикально, как и должно быть, но изображения не зацикливаются. Как только два изображения покинут нижнюю часть экрана, новые изображения не заменят их.