Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios7 SK场景转换背景_Ios7_Xcode5_Sprite Kit - Fatal编程技术网

Ios7 SK场景转换背景

Ios7 SK场景转换背景,ios7,xcode5,sprite-kit,Ios7,Xcode5,Sprite Kit,我刚刚开始学习如何使用xCode编程,更具体地说,是如何使用新的SpriteKit编程。所以在我的脑海里,我是一个新手 我试着通过按标签移动到另一个场景,但不知怎的,我的场景背景出了问题。背景应该像第一个场景,但它给了我一个有两个水平条的背景。我认为我没有做错什么,因为我只是复制了将背景设置到第二个场景所需的代码 第一场: 第二场: 我的代码用于设置两种背景: SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:

我刚刚开始学习如何使用xCode编程,更具体地说,是如何使用新的SpriteKit编程。所以在我的脑海里,我是一个新手

我试着通过按标签移动到另一个场景,但不知怎的,我的场景背景出了问题。背景应该像第一个场景,但它给了我一个有两个水平条的背景。我认为我没有做错什么,因为我只是复制了将背景设置到第二个场景所需的代码

第一场:

第二场:

我的代码用于设置两种背景:

SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:@"background_start"];
    background.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
    background.xScale = 0.7;
    background.yScale = 0.7;
    [self addChild:background];
转换通过以下方式完成:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */

UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
SKNode *node = [self nodeAtPoint:location];

if([node.name isEqualToString:@"startgame"]){
    Options_Scene *gs = [[Options_Scene alloc] initWithSize:self.size];
    SKTransition *doors = [SKTransition doorsOpenVerticalWithDuration:0.5];
    [self.view presentScene:gs transition:doors];
}
}


PS:我觉得奇怪的是,当背景实际尺寸为480x320时,为什么我必须将其缩放到0.7。

当您使用横向时,我会交换

viewWillAppear


1) 检查场景的scaleMode和2)检查初始场景的大小(应为480x320)。后者是一个已知的问题,即使该应用程序只支持横向iOS,最初以纵向模式启动该应用程序,并将大小报告为纵向,直到某一点(我认为视图将出现)。检查初始场景是否为480x320或320x480。两个场景中的scalemode都是菜单。scalemode=SKSceneScaleModeAspectFill;
- (void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];

SKView * skView = (SKView *)self.view;

if (!skView.scene) {
    //skView.showsFPS = YES;
    //skView.showsNodeCount = YES;
    // Create and configure the scene.
    SKScene * scene = [PMyScene sceneWithSize:skView.bounds.size];
    scene.scaleMode = SKSceneScaleModeAspectFill;
    // Present the scene.
    [skView presentScene:scene];
}
}