Запустите метод на определенное время - PullRequest
0 голосов
/ 30 ноября 2011

Итак, у меня есть метод, который предполагает быстрое движение объекта.Код внутри:

b2Vec2 force;
force.Set(_body->GetLinearVelocity().x, _body->GetLinearVelocity().y+1.0f);

for (b2Body* b = _game.world->GetBodyList(); b; b = b->GetNext())
{
    if (b->GetUserData() == character)
    {
        b->SetLinearVelocity(force);
    }
}

Код не важен, я хочу знать, как я могу остановить этот процесс через несколько секунд или когда он достигнет определенной точки y.потому что атм выходит из экрана!

С уважением.

Ответы [ 2 ]

0 голосов
/ 02 декабря 2011

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

так в основном таймер внутри таймера.

0 голосов
/ 30 ноября 2011

Просто проверьте, находится ли положение y тела ниже порогового значения, которое вы не хотите пересекать:

for (b2Body* b = _game.world->GetBodyList(); b; b = b->GetNext())
{
    if (b->GetUserData() == character && b->GetPosition().y < 300)
    {
        b->SetLinearVelocity(force);
    }
}
...