缩放场景不会缩放按钮区域

时间:2014-02-05 22:05:12

标签: button scaling sprite-kit

为了将3.5英寸iPhone的场景缩放到4英寸手机,我使用了代码

- (void)createSceneContents {

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 480)
    {
    }
    if(result.height == 568)
    {
        [self runAction:[SKAction scaleXBy:1 y:1.2 duration:0]];
    }
}

它可以根据自己的喜好缩放场景,但是我遇到了点击按钮的问题...

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInNode:self];
    SKNode *node = [self nodeAtPoint:location];

    if ([node.name isEqualToString:@"Saloon"]) {
        if (self.MOVING == NO) {
            self.SaloonWalk = YES;
            self.MOVING = YES;
        }
    }

问题是当我点击沙龙时,即使它与场景缩放,我的代码仍然具有未缩放的尺寸。所以,如果我点击Saloon下面稍微点击它会运行上面的代码,但如果我点击Saloon顶部附近没有任何反应。我已经做了一些搜索,并且没有找到任何帮助来缩放区域,用我新缩放的场景来触摸节点。

1 个答案:

答案 0 :(得分:0)

假设您已经创建了子类SKSpriteNode来构建按钮,并且上面显示的touchesBegan位于您的按钮子类中,您需要调用父级的位置:

CGPoint location = [touch locationInNode:self.parent];

as locationInNode为您提供传入的节点坐标中的位置。如果您要查找按钮节点,则应使用您正在查找的对象的父节点向touchInNode发送touchInNode。 / p>