【发布时间】:2015-07-25 08:01:37
【问题描述】:
我有一个包装类来创建一个带有一些子节点的标签节点。这是该类的初始化:
let label = SKLabelNode(text: word)
let background = SKShapeNode(rectOfSize: size, cornerRadius: 0.5)
let mainNode = SKSpriteNode(color: color, size: background.frame.size)
label.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Center
label.verticalAlignmentMode = SKLabelVerticalAlignmentMode.Center
label.addChild(background)
label.addChild(mainNode)
mainNode.zPosition = 1
background.zPosition = 2
label.zPosition = 5
self.node = label
在我的主场景中,我实例化了节点,设置了它的物理体并设置了场景的重力:
self.physicsWorld.gravity = CGVectorMake( 0, -10 );
let node = MyNode()
node.node.zPosition = 99
node.node.position.y = endOfScreenTop
if let name = node.node.name as String!, let sprite = node.node.childNodeWithName(name) as? SKSpriteNode {
node.node.physicsBody = SKPhysicsBody(rectangleOfSize: sprite.size)
node.node.physicsBody!.mass = 1.0;
node.node.physicsBody!.angularDamping = 0.0;
node.node.physicsBody!.linearDamping = 0.0;
node.node.physicsBody!.friction = 0.0;
node.node.physicsBody!.affectedByGravity = true
node.node.physicsBody!.dynamic = true
node.node.physicsBody!.allowsRotation = false
}
addChild(node.node)
我有两个问题:
- 标签出现在 SKSpriteNode 后面,尽管 zPosition 应该将它放在前面
- 根本没有出现 SKShapeNode(这只是一个用于平滑角落的插图)
- 所有节点都不受重力影响
PS。即使将以下内容更改为 true 也不会改变任何内容:
skView.ignoresSiblingOrder = false
PS2。 MyNode 类具有这些属性
var node: SKLabelNode
var speed: CGFloat = 1.0
var word: String
var color: UIColor
var kind: Kind
【问题讨论】:
-
当然我忘了从 init 复制最后一行,太好了.... self.node = label(我在底部添加了更多信息)
标签: ios sprite-kit sklabelnode