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