Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Cocos2D获得CCAction的进展_Iphone_Ios_Animation_Cocos2d Iphone_Ccaction - Fatal编程技术网

Iphone Cocos2D获得CCAction的进展

Iphone Cocos2D获得CCAction的进展,iphone,ios,animation,cocos2d-iphone,ccaction,Iphone,Ios,Animation,Cocos2d Iphone,Ccaction,我有一个关于Box2D物理的Cocos2D游戏。在我的GameSecene.mm中,我正在研究一种缩放到给定比例的方法: -(void) zoomToScale:(float)zoom withDuration:(ccTime)duration { id action = [CCScaleTo actionWithDuration:duration scale:zoom]; [scrollNode runAction:action]; currentZoomLevel

我有一个关于Box2D物理的Cocos2D游戏。在我的GameSecene.mm中,我正在研究一种缩放到给定比例的方法:

-(void) zoomToScale:(float)zoom withDuration:(ccTime)duration
{
    id action = [CCScaleTo actionWithDuration:duration scale:zoom];
    [scrollNode runAction:action];

    currentZoomLevel = zoom;
}
我遇到的问题是currentZoomLevel(在场景的update()方法中使用)立即设置为缩放,并且不会根据动画逐渐调整。因此,当动画正在进行时,currentZoomLevel变量是完全错误的

我试图找出一种方法,使currentZoomLevel变量在动画发生时与动画的进度相匹配。根据CCAction API参考,CCAction的更新方法根据动画的进度(0刚刚开始,1刚刚完成)占用的ccTime介于0和1之间

我如何从活动外部访问此ccTime?我希望在场景的更新方法中有如下内容:

if(animating)
{
    float progress = [action getProgress]; // How do I do this?

    // Do math to update currentZoomLevel based on progress
}

我是否遗漏了一些明显的内容,或者我必须将CCScaleTo子类化?

您应该能够在缩放动画时直接访问缩放

而不是
float progress=[action getProgress]

试一试
float current\u scale=some\u node.scale


其中“某个节点”是您正在设置动画/缩放的对象。

您应该能够在缩放动画时直接访问缩放

而不是
float progress=[action getProgress]

试一试
float current\u scale=some\u node.scale


其中“some_node”是您正在设置动画/缩放的对象。

实际上,您最好使用新的Cocos2D扩展名“CCLayerPanZoom”,它可以为您出色地处理所有这些问题!它应该是任何新cocos2D安装(v.1.0+)的一部分。

实际上,您最好使用新的cocos2D扩展“CCLayerPanZoom”,它可以为您出色地处理所有这些问题!它应该是任何新cocos2D安装(v.1.0+)的一部分