这是我目前的情况: 我创建了一个名为StoreScene的CCScene。 在那个场景中,我初始化了一个CCLayer,并将其命名为Store layer。
现在,我想要一个包含用户可以触摸的内容的可滚动图层。 为此,我创建了另一个名为Store Container的CCLayer。 我创建了这个图层的一个实例,并将其作为子项添加到StoreScene。
在StoreContainer中,我添加了多个精灵,每个精灵都有一个唯一的标签。 滚动在StoreScene中完成,触摸将向上或向下移动整个Storecontainer层。
我在滚动图层(商店容器)中添加了4个精灵 原来, 精灵1位于0,10 精灵2位于0,20 精灵3位于0,30 精灵4位于0,40
显然,随着整个商店容器层的移动,精灵位置也会发生变化。 然而, 当我在TouchesEnded方法中执行此操作时: if(CGRectContainsPoint(sprite1.boundingBox,touchpoint)){ 的NSLog(@ “TouchedSprite1”); } ...等等每个精灵
每个精灵的触摸位置保持在同一个地方! 在视觉上,精灵正在上下移动。 但接收触摸时的位置保持不变.. 是否有一个原因? 接近滚动图层的任何其他方式? 我已经看过UIKit的scrollview了,我看过CCScrollLayer,对我来说都不够好。 我的方式可能更简单,但它不能按计划运作。 提前致谢! ^ _ ^
答案 0 :(得分:0)
我猜你已经在touchesEnded
中实施了StoreContainer
。在这种情况下,触摸的坐标将相对于该层,这解释了为什么它们的坐标系跟随屏幕周围的层。您可以在场景中实现touchesEnded
,或者将StoreContainer
实例放在一个新的且不可移动的图层中,其目的只是处理触摸。
另外,您可以保留当前设置并使用this question的答案来获取世界上的触摸坐标......:)
答案 1 :(得分:0)
查看CCKit,其中包含一个不错的CCScrollLayer实现。