我正在使用Xcode 6,我使用SpriteKit模板启动了一个项目。首先,我想要做的就是在提供的视图的左下角添加一个节点。我试图这样做:
@implementation GameScene
-(void)didMoveToView:(SKView *)view {
/* Setup your scene here */
SKLabelNode *myLabel = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];
SKSpriteNode *greenNode = [SKSpriteNode spriteNodeWithColor:[SKColor greenColor] size:CGSizeMake(100, 100)];
greenNode.anchorPoint = CGPointMake(0,0);
greenNode.position = CGPointMake(10,10);
[self addChild:greenNode];
无处可寻。但如果我设置它的位置是这样的:
greenNode.position = CGPointMake(CGRectGetMidX(self.frame),
CGRectGetMidY(self.frame));
它恰好位于我的视线中间。当我使用(10,10)或(0,0)时,为什么我看不到它。如果我将CGPoint设置为(350,0),我实际上会在左下方看到它。所以,我的问题是,为什么在这个默认模板中我的节点被放置在左边350?我没有更改此模板中的任何内容。我觉得它与视图控制器的viewdidload中提供的这行代码有关:
scene.scaleMode = SKSceneScaleModeAspectFill;
但是这个目的是什么?对新手有什么帮助吗?谢谢!
答案 0 :(得分:1)
AspectFill会导致某些场景具有不可见的内容。例如,假设您的场景为1000 * 800,但它会移动到400 * 400的视图。这会使您的场景缩小到500 * 400.这意味着场景左侧有50个点,场景右侧50点是看不见的。为避免这种情况,您可以将缩放模式设置为AspectFit。