次のような SKScene サブクラスを提示する SKView を作成しました。
SKView *skv = [[SKView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:skv];
self.skScene = [[TestScene alloc] initWithSize:v.bounds.size];
[skv presentScene:_skScene];
次に、座標系の原点を確認するために、小さな 10x10 色の正方形をシーンに追加します。
SKSpriteNode *ori = [SKSpriteNode spriteNodeWithColor:[UIColor greenColor] size:CGSizeMake(10,10)];
[self addChild:ori];
左下隅に緑色の四角が表示されます。
やはりSpriteKitの座標系は、原点が常に中心になるようになっています。しかし、シーンでは、原点は左下隅にあります。子ノードを {0,0} に追加すると、左下隅にも表示されます。
SKSpriteNode を追加してシーンに {0,0} 配置すると、左下隅に表示されます。ただし、左下隅のシーンの原点を中心にしています (左半分と下半分が切り取られています)。
しかし、今ではもっと混乱しています。SKSpriteNode を別の SKSpriteNode に追加すると、サブスプライトが親の中央に配置されます。
では、シーンの座標系はスプライトの座標系とは異なる働きをするということですか?
要約:
- スプライトをシーンの {0,0} に配置すると、左下に表示され、50% 切り取られます (原点を中心に)。
- {0,0} のスプライトにスプライトを配置すると、スプライトの中央に表示されます。
シーンの構成が間違っていますか、それともこのように動作しますか?