【问题标题】:Why is my rectangle being drawn wrong?为什么我的矩形画错了?
【发布时间】:2015-06-13 15:16:36
【问题描述】:

我正在尝试在我的屏幕周围绘制一个矩形。这是我的代码:

    let viewRect = SKShapeNode(rect: self.view!.frame)
    viewRect.strokeColor = SKColor.whiteColor()
    viewRect.lineWidth = 2.0
    addChild(viewRect)

我使用self.view!.frame 而不是self.frame,因为我的场景与我的屏幕大小不同(场景被拉伸以填满我的屏幕)。

我原以为代码会在我的屏幕周围画一个矩形,但它却画了这个(白色矩形是画的):

有人知道为什么我的屏幕上没有画出来吗?

场景尺寸:1024x768 视图尺寸:414x736 缩放模式:纵横比填充

【问题讨论】:

  • 请阅读所有内容,看看是否适用于您的情况:stackoverflow.com/a/30714859/3402095 同时,您可以使用一些调试信息更新您的问题,例如 - 您的真实场景大小是多少,您的视图大小是多少你的场景的缩放模式是什么......
  • 这有点难以判断,因为您的代码的 sn-p 与上下文无关 - 但可能是您使用了“框架”(视图在其父视图中的位置)而不是“ bounds'(视图本身的位置和大小)来设置矩形的大小。
  • @AliBeadle 不幸的是,它们似乎都不起作用。
  • @Whirlwind 不幸的是,链接中的解决方案没有帮助。我添加了您要求的调试信息! (它在底部)
  • @dfgdfg 在这种情况下 self 是什么 - 大概是您想要边框的 SKView ?在这种情况下,我不确定您为什么使用 self.view!.frame 而不是 self.bounds。

标签: ios swift graphics sprite-kit


【解决方案1】:

您将边界创建为场景中的节点,然后根据呈现场景的视图设置其坐标。 SKScene 的坐标系通常与呈现它的视图不同,因此形状与您的预期不同。

【讨论】:

  • 谢谢!我该如何解决这个问题?
  • 这取决于您要达到的目标。在最简单的情况下,您可以只使用已知的场景大小 - 1024,768,但正如 Whirlwind 所说,将场景保持在默认大小可能不是您想要的,无论如何使用 Aspect Fill,您的场景的一部分可能无论如何都在屏幕外。您是否阅读并理解了 Apple 关于此主题的说明:developer.apple.com/library/ios/documentation/GraphicsAnimation/…
猜你喜欢
  • 2014-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多