2013-12-22 47 views
0

我剛剛開始使用cocos2D編程Xcode 5中的遊戲,發現這很奇怪。我剛從菜單場景開始新鮮出爐,並正在導入背景和按鈕。下面的代碼有時會使我的背景很好地定位,但其他時候它會向上調整大約50個像素(我的模擬器在它的側面,或者它的長度是水平的,所以技術上它在「寬度」方向上移動約50個像素,儘管模擬器向上移動)。每次我在Xcode 5中建立背景位置交替位置

注意我發現每次運行我的程序時,它都會正確對齊和移位。爲什麼會這樣呢?以下是我正在使用的代碼。

注2我正在使用Kobold2D,並且我正在使用的框架有一個config.lua,它有點超出了我的範圍,無法理解所有內容。該config.lua代碼位於此處http://snipt.org/BEt6

-(id) init 
{ 
    if ((self = [super init])) 
    { 
     CCSprite *sprite = [CCSprite spriteWithFile:@"background.png"]; 
     sprite.anchorPoint = CGPointZero; 
     [self addChild:sprite z:-1]; 

     sprite = [CCSprite spriteWithFile:@"button.png"]; 
     sprite.anchorPoint = CGPointZero; 
     sprite.position = CGPointMake(200,200); 
     [self addChild:sprite z:0]; 
    } 

    return self; 
} 
+0

沒有什麼明顯的,我...除了anchorPoint你不應該設置爲零...它通常應在單獨左(0.5,0.5) (圖像/精靈的中心)。 – FuzzyBunnySlippers

+0

雖然看起來不尋常(對我來說)爲z順序指定-1,看着根代碼,似乎它會工作正常... – FuzzyBunnySlippers

回答

0

與您的代碼唯一的問題是,你是初始化精靈兩次,這不是很好。
我認爲這是造成你的問題。

試試這個代碼:

-(id) init 
{ 
    if ((self = [super init])) 
    { 
     CCSprite *sprite = [CCSprite spriteWithFile:@"background.png"]; 
     sprite.anchorPoint = CGPointZero; 
     [self addChild:sprite z:-1]; 

     CCSprite *sprite2 = [CCSprite spriteWithFile:@"button.png"]; 
     sprite2.anchorPoint = CGPointZero; 
     sprite2.position = CGPointMake(200,200); 
     [self addChild:sprite2 z:0]; 
} 

return self; 

}