Я просто пытаюсь запланировать метод обновления один раз в ccTouchesMoved, но когда я добавляю это
if (isRotating == YES)
{
gTimer = 20;
[self schedule:@selector(g:) interval:1];
}
в ccTouchesMove он вызывает его при каждом перемещении касания. Есть ли способ сохранить его в ccTouchesMoved и вызвать его только один раз?
isRotating
установлено в ДА в ccTouchesMoved
.
Код:
- (void)g:(ccTime)delta
{
gTimer--;
if (gTimer == 0 && isRotating == YES)
{
[self unschedule:@selector(g:)];
}
}
Все, что я хочу сделать, - это вращать спрайт на фиксированный интервал, а затем удалять его, когда таймер равен 0, но я хочу удалить его, только если касание в данный момент вращает спрайт.
Здесь происходит приостановка / возобновление таймера. Если игрок начинает вращать спрайт, затем поднимает палец, таймер должен остановиться, а когда он снова коснется / повернет спрайт, таймер должен возобновиться.
Если мои объяснения не ясны, пожалуйста, не стесняйтесь попросить меня уточнить.
Методы таймера:
в .ч
ccTimer gTimer;
в .м
- (void)g:(ccTime)delta
{
gTimer--;
if (gTimer == 0 && isRotating == YES)
{
[self unschedule:@selector(g:)];
}
}
Также я установил таймер с помощью
if (isRotating == YES)
{
gTimer = 20;
[self schedule:@selector(g:) interval:1];
}
Любая помощь очень ценится!