求问关于schedule和action的执行准确度(时间上的)

假设我现在想做的一个游戏,对时间有严格的要求。

FPS = 60.0f;
SPF = 1.0 / 60.0f ; // second per frame

假设现在在HelloWorld里面的init最后,调用了如下函数
this->schedule(SEL_SCHEDULE(&HelloWorld::callSomething));

void HelloWorld::callSomething(float delta)
{
// 1. 每秒钟,这个函数一定会执行60次吗?
// 2. 如果不一定,那我怎样才能保证能在1秒钟内执行60次呢?
// 3. 这个delta是指距离上次调用经过的时间吗?(新手求问)
// 4. 这样的话,是不是 do { xxx; delta -= SPF;} while(delta > 0.0f); 就达到我要的次数?
// 5. 但实际上,如果像4中这样做了,我发现执行次数多了啊,该怎么处理才好?
}

我想要达到的目的是,怎样才能让我的角色可以在1秒钟之内执行某个动作(比如移动指定距离),且是指定的次数?

this->schedule(SEL_SCHEDULE(&HelloWorld::callSomething), 0.01f); // 如果这样做的话,能保证1秒钟调用100次吗?还是实际次数 <= 60次呢?

关于action的duration参数也有同样的疑问

求大神解惑~~

1.不一定会是60次,如果是默认设置的话最多是60次,一般都会比这个值小
2.无法保证在一秒内一定执行60次,与手机的性能,当前帧所做的操作都有关系,这个值一般不是固定的
3.是距离上次调用的时间
4.你这样写的do循环相当于在一帧内做了delta/SPF次的循环逻辑,具体效果要看代码

感谢解答,可是我还是想弄清楚这个:
怎样才能让我的角色可以在1秒钟之内执行某个动作(比如移动指定距离),且是指定的次数?

或者有没有别的替换方案呢?

需要明确动作在单位时间内的次数,这个不应该是基本么?
比如常见游戏中的dot和hot。。。

你可以按一秒的次数来指定播放的速度,但实际上真正的时间就没法保证了