【问题标题】:How To Change The Size Of The Window For A SpriteKit Project如何更改 SpriteKit 项目的窗口大小
【发布时间】:2016-12-31 00:26:43
【问题描述】:

我只是在玩弄一个 Objective C (OS X) SpriteKit 项目。我正在尝试使窗口(框架)与我的场景大小相同。我已将场景更改为 (1366, 768),但我的帧仍然是 (800, 600)。为了解决这个问题,我将以下代码添加到ViewController.m

[self.skView setFrame:NSMakeRect(0, 0, 1366, 768)];

成功了,但是现在当我在场景中显示东西时,(0, 0) 位于屏幕中间,而不是左下角。你如何解决这个问题?还是有其他方法可以改变框架的大小,使原点位置不会从左下角改变?

【问题讨论】:

  • 我很抱歉......这是一个愚蠢的问题。我一直认为 SKScene 的锚点是 (0, 0),但它似乎是 (0.5, 0.5)。我不确定它是否总是这样,或者它是否在过去一两年发生了变化。无论哪种方式,在 ViewController.m 中创建场景后添加 [scene setAnchorPoint:CGPointMake(0, 0)]; 即可解决所有问题。
  • 你应该让你的评论成为一个答案,这样如果将来有人偶然发现这个问题,他们就有一个答案可以参考。
  • 好的,我会这样做的:)

标签: objective-c macos sprite-kit


【解决方案1】:

我很抱歉...这是一个愚蠢的问题,但希望这个答案能帮助别人。

我一直认为 SKScene 的锚点是 (0, 0),但它似乎是 (0.5, 0.5)。我不确定它是否总是这样,或者它是否在过去一两年发生了变化。无论哪种方式,在ViewController 类中创建场景后添加[scene setAnchorPoint:CGPointMake(0, 0)]; 将其全部修复为屏幕左下角 (0, 0)。希望这对某人有所帮助。

【讨论】:

  • 不是场景的锚点改变了。当您以其他方式创建场景而不是从 .sks 文件加载时,您会注意到它的 anchorPoint is stil 0.0, 0.0.它只是 .sks 文件的默认值,自 Xcode 8 以来发生了变化。
  • 是的,但是在创建 SpriteKit 项目时加载场景的默认方式是通过 .sks 文件。我只是没有意识到锚点的默认值发生了变化。
  • 当然。但关键是 anchorPoint 并没有真正改变。 Docs 也是这么说的。
  • 我们说的是同一件事吗?我不打算发布答案,因为我意识到我的问题很愚蠢,但另一位发帖人告诉我发布它,以防其他人遇到同样的困惑。
  • 不,你是正确的,在 sks 文件中 anchorPoint 被更改为 0.5、0.5。但是一般场景的anchorPoint的默认值还是0.0,0.0。请阅读我发布的链接。
猜你喜欢
  • 1970-01-01
  • 2022-07-08
  • 2012-12-10
  • 1970-01-01
  • 2013-02-06
  • 2019-08-09
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多