2012-04-18 107 views
0

这是我目前的情况: 我创建了一个名为StoreScene的CCScene。 在那个场景中,我初始化了一个CCLayer,并将其命名为Store层。创建滚动视图

现在,我想要一个包含用户可以触摸的内容的可滚动图层。 为此,我创建了另一个名为Store Container的CCLayer。 我创建此图层的一个实例并将其作为子级添加到StoreScene。

在StoreContainer中,我添加了多个精灵,每个精灵都有一个唯一的标签。 滚动在StoreScene中完成,触摸会将整个Storecontainer层向上或向下移动。

我已经加入4个精灵到我的滚动层(存储容器) 最初, 精灵1位于0,10 精灵2位于0,20 精灵3位于0,30 精灵4位于0,40

显然,随着整个storecontainer层的移动,sprite位置也会移位。 但是,当我在TouchesEnded方法中执行此操作时,会出现 : if(CGRectContainsPoint(sprite1.boundingBox,touchpoint)){ NSLog(@“TouchedSprite1”); } ...等等每个精灵

每个精灵的触摸位置保持在同一个地方!从视觉上看,精灵正在上下移动。 但他们的位置,当接收触摸保持不变.. 是有这个原因吗? 接近滚动层的其他方法? 我已经看过UIKit的scrollview,我已经看过CCScrollLayer,但对我来说都不够好。 我的方式可能更简单,但不能按计划运行。 在此先感谢!^_^

+0

请包括必要的代码 – 2012-04-18 19:17:54

回答

0

我猜你在StoreContainer中实施了touchesEnded。在这种情况下,触摸的坐标将相对于该层,这就解释了为什么他们的坐标系跟随屏幕周围的层。您可以在场景中实现touchesEnded,或者将StoreContainer实例放入一个新的且不可移动的层中,其目的仅在于处理触摸。

或者你可以让你的当前设置和使用您的答案this question让世界触摸坐标... :)