2013-09-30 187 views
0

我剛開始學習如何使用xCode編程,更具體地說是使用新的SpriteKit編程。所以我記住我對此很陌生。SK場景過渡背景

我已經設法通過按一個標籤移動到另一個場景,但不知怎的,我的場景的背景已全部錯誤。背景應該像第一個場景,但它給了我一個有兩個單槓的背景。我不認爲自己做錯了什麼,因爲我只是複製了將背景設置爲第二個場景所需的代碼。

1日的一幕: http://imageshack.us/photo/my-images/23/kyud.png/

第二個場景: http://imageshack.us/photo/my-images/198/472h.png/

用於建立兩個背景我的代碼:

-(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]; 
} 

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]; 

轉變與實現}

PS:我覺得很奇怪,爲什麼我必須將它縮放到0.7,而背景實際上的尺寸是480x320。

+0

1)檢查現場的scaleMode和2)檢查初始場景的大小(應該是小480x320)。後者是一個已知問題,即使該應用僅支持風景iOS最初以縱向模式啓動應用並將大小報告爲肖像直到某個點(viewWillAppear我認爲)。檢查初始場景是否獲得480x320或320x480。 – LearnCocos2D

+0

兩種場景中的scalemode均爲menu.scaleMode = SKSceneScaleModeAspectFill; – WaikeCU

回答

0

當您使用的景觀我會交換

viewWillAppear 

隨着

- (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]; 
} 
}