我正在使用 Cocos2d 开发游戏。我需要能够在必要时进行平移和缩放,因此我在我的项目中添加了 CCLayerPanZoom 扩展。最近我注意到缩放图层的问题。问题是,如果我在进行缩放或平移之前触摸可缩放的图层,我会得到正确的 x,y 坐标。但是如果我缩放图层,触摸的位置坐标与之前的坐标不同。这是我获取触摸位置的方法:
-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch=[touches anyObject];
CGPoint touchedLocation=[touch locationInView:touch.view];
touchedLocation=[[CCDirector sharedDirector] convertToGL:startPoint];
}
您可能会问我如何确定缩放前后两个点是否不同。我有一个精灵位于视图中的预定点。当我触摸精灵时,我会记录精灵和所触摸位置的位置。在缩放之前,这些点几乎相同,只是 x 和 y 有几个单位的差异。但是在缩放之后它们是完全不同的点,我猜这种差异与缩放比例成正比。我不想问如何在缩放前后让触摸的位置相同,我想问在这种情况下我应该怎么做。