【问题标题】:Sprite Kit label in the corner角落里的 Sprite Kit 标签
【发布时间】:2014-07-03 13:20:39
【问题描述】:

在场景的右上角或左上角添加标签的最佳方法是什么?它应该是跨设备的。

let height = self.frame.size.height
let width = self.frame.size.width    
label.fontSize = 50
label.verticalAlignmentMode = .Top
label.horizontalAlignmentMode = .Left
label.position = CGPoint(x:2, y:height-2)

但它不会在角落里。怎么了?

【问题讨论】:

  • 你的代码看起来是正确的,应该把标签放在左上角,每个轴都有一个 2 点缓冲区。您看到的行为是什么?
  • 标签高于屏幕。我可以减去 50 或更多才能看到它。如果我减去 2,则它是隐藏的。
  • 那么self的frame就比你的屏幕大了。

标签: swift sprite-kit


【解决方案1】:

在 Sprite Kit 中,场景坐标的默认原点位于屏幕的左下角。因此,如果您希望标签位于顶角,您应该继续使用屏幕的高度作为标签的位置,但也使用 0 或屏幕的宽度作为 x 位置。将此与水平对齐模式结合起来,取决于侧面,左侧或右侧,您的标签将位于正确的位置。

对于左上角的标签:

label.horizontalAlignmentMode = .Left
label.position = CGPoint(x:0.0, y:self.size.height)

或者右上角:

label.horizontalAlignmentMode = .Right
label.position = CGPoint(x:self.size.width, y:self.size.height)

【讨论】:

  • 谢谢,但我看不到带有此类代码的标签。可能是错误?是否有其他版本的 Sprite Kit?
  • 我用的是 iPhone 5s 模拟器。 height-100 就可以了。但在 iPad Air 上,这将是一个很大的补充。
  • @SDmitry 你有 GameScene".sks" 文件吗?如果是这样,请确保它具有适当的尺寸,并且您的场景的内容缩放模式设置为不允许场景延伸到屏幕外的模式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多