Я думаю, вам нужно запланировать таймер и повторить метод, который проверяет состояния кнопок.
// предположим, что таймер настроен на тестирование состояний кнопок, запускающих controlLoop
каждые x секунд
-(void)controlsLoop
{
if (leftButton.state == UIControlStateSelected || leftButton.state == UIControlStateHighlighted) {
}
}
Я никогда не делал этого раньше, так что играйте с этим весело.
Я обычно добиваюсь контроля, как вы хотите в Cocos2d,
Может быть, лучше реализовать эти методы
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
, чтобы установить, в каком направлении вы хотите переместить объект, и при этом все еще есть таймер, запускающий фактическое движение.