每次我在Xcode 5中建立背景位置交替位置

问题描述:

我刚刚开始使用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

与您的代码唯一的问题是,你是初始化精灵两次,这不是很好。
我认为这是造成你的问题。

试试这个代码:

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

}