为了将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顶部附近没有任何反应。我已经做了一些搜索,并且没有找到任何帮助来缩放区域,用我新缩放的场景来触摸节点。
答案 0 :(得分:0)
假设您已经创建了子类SKSpriteNode来构建按钮,并且上面显示的touchesBegan位于您的按钮子类中,您需要调用父级的位置:
CGPoint location = [touch locationInNode:self.parent];
as locationInNode为您提供传入的节点坐标中的位置。如果您要查找按钮节点,则应使用您正在查找的对象的父节点向touchInNode发送touchInNode。 / p>