0

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

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

在缩放之前,我得到“触摸精灵内部”输出,但是当它缩放时我没有。我问了一个类似的问题(在缩放视图上为触摸位置获取不同的 x 和 y 坐标)并稍后解决。但我发现的解决方案仅适用于平移,不适用于缩放。那里有很多游戏,这一定非常简单(至少在我之前完成)。我需要能够使触摸点与缩放前相同。

4

1 回答 1

0

我很遗憾浪费了所有时间来寻找解决这个问题的方法。事实证明,在 Cocos2D 中有一个名为 convertToNodeSpace 的简洁方法可以解除所有繁重的任务。无需进行所有这些疯狂的计算即可将平移距离和缩放比例考虑在内。我只是做了以下事情,一切都像魔术一样

touchedPoint=[self convertToNodeSpace: touchedPoint];

其中 self 是 CCLayerPanZoom 的子类,它是 CCLayer 的子类。就这样。希望这可以帮助某人。

于 2013-09-27T16:05:57.550 回答