为什么我的节点没有出现在SpriteKit模板中?

时间:2014-09-22 02:22:49

标签: ios objective-c xcode xcode6

我正在使用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;

但是这个目的是什么?对新手有什么帮助吗?谢谢!

1 个答案:

答案 0 :(得分:1)

AspectFill会导致某些场景具有不可见的内容。例如,假设您的场景为1000 * 800,但它会移动到400 * 400的视图。这会使您的场景缩小到500 * 400.这意味着场景左侧有50个点,场景右侧50点是看不见的。为避免这种情况,您可以将缩放模式设置为AspectFit。