Или просто создайте это:
function yourFunction(){
//do something
setInterval(myFunc(),1000);
//do something else
}
function myFunc(){
return;
}
это просто будет ждать указанный интервал и вызовет функцию, которая ничего не будет делать.
Я думаю, ваша проблема в том, что вы используете переменные int
, когда хотите float
.
Я думаю, что ускорение X
и –Y должны быть переменными экземпляра и, таким образом:
accelerationX = acceleration.x * kfilteringFactor + accelerationX * (1.0 - kfilteringFactor);
accelerationY = acceleration.y * kfilteringFactor + accelerationY * (1.0 - kfilteringFactor);
Должны дать вам больше того, что вы искали.
Причина в том, что вы используете локальные переменные, хотя они не должны быть локальными.
Попробуйте сделать следующее:
Объявить переменные экземпляра:
@interface YourViewControllerClass: UIViewController {
float accelerationX, accelerationY;
}
...
other declarations
Обновить переменные в делегате акселерометра:
accelerationX = acceleration.x * kfilteringFactor + accelerationX * (1.0 - kfilteringFactor);
accelerationY = acceleration.y * kfilteringFactor + accelerationY * (1.0 - kfilteringFactor);
Он должен давать более точные результаты без резких скачков.