我在游戏中有以下设置:
我使用levelButton.anchorPoint = CGPointMake(0.5,0.5);使levelButton在中间有一个锚点。 现在,当我制作levelButton.position = CGPointMake(0,0)时;和_backgroundLayer.position = CGPointMake(0,0); levelButton的中间位于(0,0)中间,其中间位于屏幕的左下角。所以没关系。 但是,如果我将levelButton移动为levelButton.position = CGPointMake(100,0);和_backgroundLayer.position = CGPointMake(-100,0);,如下所示,levelButton应该仍然在(0,0)的中间位于屏幕的左下角。然而,事实并非如此,而且levelButton更向右,它的右边是50像素。但它不应该是,因为我将_backgroundLayer 100向左移动(-100)而向右移动_levelButton 100(100)。应该留在原地。
这些是基本的东西,我不明白他们为什么不按照自己的意愿工作。我可能做错了但是我找不到它,即使我已经通过教程和一堆教程和提示阅读了iOS游戏。
请帮忙。
现在,我的代码如下:
@implementation LevelSelectScene
{
SKNode *_backgroundLayer;
}
-(id)initWithSize:(CGSize)size {
/* Setup your scene here */
_backgroundLayer = [SKNode node];
_backgroundLayer.name = @"backgroundLayer";
SKTexture *backgroundTexture = [SKTexture textureWithImageNamed:@"levelSelect"];
int textureID = 0;
for (int i = 0; i<3; i++) {
for (int j = 0; j<3; j++) {
SKSpriteNode *background = [SKSpriteNode spriteNodeWithTexture:backgroundTexture];
background.anchorPoint = CGPointZero;
background.position = CGPointMake((background.size.width)*i,
(background.size.height)*j);
background.zPosition = 0;
background.name = [NSString stringWithFormat:@"background%d", textureID];
textureID++;
[_backgroundLayer addChild:background];
}
}
[self addChild:_backgroundLayer];
SKSpriteNode * levelButton = [SKSpriteNode spriteNodeWithImageNamed:@"lock"];
levelButton.anchorPoint = CGPointMake(0.5, 0.5);
levelButton.position = CGPointMake(100, 0); //IMPORTANT
levelButton.zPosition = 150;
levelButton.name = @"test";
[_backgroundLayer addChild:levelButton];
_backgroundLayer.position = CGPointMake(-100, 0); //IMPORTANT
}
return self;
}
答案 0 :(得分:0)