使用缩放图层上的触摸

时间:2013-09-26 17:19:50

标签: cocos2d-iphone touch zooming

我有一个CCLayerPanZoom子类。出于测试目的,我在屏幕中间放了一个精灵。我在缩放之前和之后进行以下测试:

 if(CGRectContainsPoint(mySprite.boundingBox,touchedPoint))
     NSLog(@"Touch inside the sprite");

在缩放之前我得到"触摸精灵内部"输出,但当它缩放时,我不会。我问了一个类似的问题(Getting different x and y coordinates for touched location on a zoomed view),后来又发现了。但我找到的解决方案仅适用于平移时,而不适用于缩放。那里有很多游戏,这必须是超级简单的(至少在我之前完成)。我需要能够使触摸点与缩放前相同。

1 个答案:

答案 0 :(得分:0)

我很遗憾所有浪费的时间找到摆脱这个问题的方法。事实证明,在Cocos2D中有一个名为convertToNodeSpace的整齐的方法可以解除所有重量级的重量。不需要进行所有那些疯狂的计算来考虑平移距离和缩放比例。我只是做了以下事情,一切都像魔术一样

touchedPoint=[self convertToNodeSpace: touchedPoint];

其中self是CCLayerPanZoom的子类,CCLayerPanZoom是CCLayer的子类。就这样。希望这有助于某人。