2016-04-18 3 views
0

Я занимаюсь платформенной платформой с вертикальным прокруткой, и я хочу создать спрайты, которые перемещаются влево-вправо (или справа налево), и когда они выходят из экрана , они появляются с другой стороны.Цитирование бесконечно бесконечно в Cocos2D

У меня есть реализация, которая является в основном работает, единственная проблема состоит в том, что спрайты на одном этаже продолжает становиться все ближе и ближе в каждом цикле.

Я действительно плохо разбираюсь в вещах, поэтому please check this video.

Я использую следующий код, чтобы вычислить новое положение узлов:

pos.x = fmodf(size.width + pos.x + this->currentDir * this->speed * delta, this->len + size.width) - size.width; 

len ширин, после чего спрайт получает приложен к 0 (на самом деле -size.width, что ширина спрайта), currentDir либо 1, либо -1 и delta - время, прошедшее с помощью метода update().

Каждый спрайт позиционируется в собственном обновлении(), но я уже пробовал делать все в методе update() Scene, но результат был тот же.

ответ

0

Если ваша переменная дельты увеличивается с течением времени, я полагаю, что ваш pos.x также увеличился бы в той же пропорции, поэтому расстояние от этажей изменилось бы.

Вы пытались сбросить значение дельта каждый раз, когда пол выходит за пределы экрана?

+0

delta - это время, прошедшее со времени предыдущего вызова обновления() в секундах – vsakos

+0

Привет, я это понял. Я считаю, что одна из ваших переменных растет с течением времени больше, чем нужно, и я думал, что это может быть дельта, если вы не сбросите ее. Я предлагаю вам распечатать значения, которые у вас есть со временем, чтобы узнать, где проблема. – Felipe