SpriteKit を使用して、多数のラベル付きボールを含む iOS ゲームを作成しています。2 つの子を持つ親 SKSpriteNode を構築することで、これらの「rollingBalls」を構築しています。
a) SKShapeNode (実際の円形状)
b) および SKLabelNode (ラベル)
ボールは画面全体を移動し、互いに相互作用し、他のオブジェクトと 2 次元で相互作用し、予想される物理 (ビリヤードを考えてください) に完全に依存します。しかし、可能であれば、いつでも簡単に読めるように、ラベルを親と一緒に回転させないようにしたいと思います。
これを行う最も簡単な方法は何ですか?
ラベルはコンテナーの子であってはなりませんか? それを ballShape にペグする他の方法はありますか? または、ラベルなどに設定できるプロパティはありますか?
これが私が今持っているものです:
double ballDiameter = 40;
UIBezierPath* ovalPath = [UIBezierPath bezierPathWithOvalInRect:
CGRectMake(-ballDiameter / 2, -ballDiameter / 2,
ballDiameter, ballDiameter)];
SKSpriteNode *container = [[SKSpriteNode alloc]init];
container.name = @"rollingBall";
SKShapeNode *ballShape = [[SKShapeNode alloc] init];
ballShape.path = ovalPath.CGPath;
SKLabelNode *ballLabel = [SKLabelNode labelNodeWithFontNamed:@"Arial"];
ballLabel.text = @"some random string";
ballLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeCenter;
ballLabel.verticalAlignmentMode = SKLabelVerticalAlignmentModeCenter;
ballLabel.position = CGPointMake(0,0);
[container addChild:ballShape];
[container addChild:ballLabel];
container.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:ballDiameter / 2];
container.physicsBody.usesPreciseCollisionDetection = YES;