Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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
Cocos2d iphone 如何在cocos2d(Kobold2D)CCLayer上进行收缩/缩放_Cocos2d Iphone_Scale_Cclayer_Kobold2d_Pinchzoom - Fatal编程技术网

Cocos2d iphone 如何在cocos2d(Kobold2D)CCLayer上进行收缩/缩放

Cocos2d iphone 如何在cocos2d(Kobold2D)CCLayer上进行收缩/缩放,cocos2d-iphone,scale,cclayer,kobold2d,pinchzoom,Cocos2d Iphone,Scale,Cclayer,Kobold2d,Pinchzoom,我一直在尝试在cocos2d中的CCLayer上实现标准的收缩/缩放(使用Kobold2D手势识别器),但只取得了部分成功 下面是我的代码,只要挤压点不移动,挤压/缩放就可以工作。但是,如果我放大图层上的一个点,然后抬起并移动手指进一步放大另一个点,则图层会出现瞬时跳跃。如果我从一开始就在第二个点上放大,而不是简单地从它所在的位置平滑地放大,它会跳到图层所在的位置 你能看到我做错了什么吗?或者我是否错过了一个现有的简单的收缩/缩放算法,该算法可以为CCLayers做这项工作 注意:我为ignor

我一直在尝试在cocos2d中的CCLayer上实现标准的收缩/缩放(使用Kobold2D手势识别器),但只取得了部分成功

下面是我的代码,只要挤压点不移动,挤压/缩放就可以工作。但是,如果我放大图层上的一个点,然后抬起并移动手指进一步放大另一个点,则图层会出现瞬时跳跃。如果我从一开始就在第二个点上放大,而不是简单地从它所在的位置平滑地放大,它会跳到图层所在的位置

你能看到我做错了什么吗?或者我是否错过了一个现有的简单的收缩/缩放算法,该算法可以为CCLayers做这项工作

注意:我为ignoreAnchorInPosition保留了默认值(是)。此外,在开始时self.scalePrePinch=1.0f

-(void) update:(ccTime)delta
{
    KKInput* input = [KKInput sharedInput];
    if (input.gesturePinchBegan) {
        CGSize scr = [[CCDirector sharedDirector] screenSize];
        CGPoint pinchLocation = [self convertToNodeSpace:input.gesturePinchLocation];
        CGPoint anchor = ccp(pinchLocation.x/scr.width, pinchLocation.y/scr.height);
        CGFloat newScale = input.gesturePinchScale * self.scalePrePinch;
        self.anchorPoint = ccp(self.anchorPoint.x + self.scale / newScale * (anchor.x - self.anchorPoint.x), 
                               self.anchorPoint.y + self.scale / newScale * (anchor.y - self.anchorPoint.y));
        self.scale = newScale;
    }
    else
        self.scalePrePinch = self.scale;
}