【问题标题】:Can ´t detect UItouch无法检测到 UItouch
【发布时间】:2012-03-31 15:42:12
【问题描述】:

我有一个大图像(1024、1496)作为我图层的背景图像。所以我开始显示图像的按钮。 在应用时,我显示图像的顶部,以及一些 CCSprites。

id move = [CCMoveBy actionWithDuration:2 position:ccp(0,-746)];
[layer runAction:move];

我的问题是我无法检测到 CCSrites 上的触摸,因为它们的位置保持不变。 (20, 1200),以及 (1024,746) 之间的 UITouch。

-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

for(UITouch * touch in  [event allTouches]){ 

    for (CCSprite *book in books) {
        CGPoint location = [touch locationInView:touch.view];
        location = [[CCDirector sharedDirector] convertToGL:location];
        if (CGRectContainsPoint([book boundingBox], location)) 
            NSLog(@"Touch");
        else{
             NSLog(@"NO Touch");            }
    }

}

}

知道如何解决这个问题吗??

【问题讨论】:

    标签: ios ipad cocos2d-iphone uitouch


    【解决方案1】:

    只需将精灵触摸转换为世界坐标。您可以使用自己的方法,根据缩放和精灵大小计算屏幕位置,或使用 Cocos 中的方法转换为世界坐标。我倾向于做前者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-19
      相关资源
      最近更新 更多