2

我有一个空的 SKScene 需要水平居中,所以我将它设置为 anchorPoint:

self.anchorPoint = CGPoint(0.5f, 0);

我还需要根据SpriteKit - Set Scale and Physics 对其进行缩放,因此我对它执行如下操作:

[self runAction:[SKAction scaleTo:0.5f duration:0.0f]];

我的问题是,当我检测到触摸时,我得到的位置看起来很奇怪。我使用通常的 (locationInNode:self) 方法检测触摸,我目前正在触摸的位置添加一个蓝色小方块,但是当我触摸设备的 4 个角时,我看到一个占屏幕四分之一的框架(正确)但向左移动了一个看似任意的量

以下是我已经检查过的一些内容:

  • 场景在 viewWillLayoutSubviews 中初始化,我知道它具有正确的初始尺寸
  • 场景的 scaleMode 设置为 SKSceneScaleModeAspectFill,但我尝试了所有这些都无济于事
4

2 回答 2

2

我在同一个问题上苦苦挣扎了一段时间,但我想我终于弄明白了。你不应该缩放场景(就像你尝试 setScale 时所暗示的那样)。你应该调整它的大小。

尝试这个:

myScene.scaleMode = SKSceneScaleModeAspectFill;

然后在缩放时:

myScene.size = CGSizeMake(newX, newY);

于 2013-11-18T21:08:08.193 回答
0

将锚点设置为

self.anchorPoint = CGPoint(0.5f, 0);

并将 Scene Scale Mode 设置为 ASPECT FIT,而不是方面填充。

SKSceneScaleModeAspectFit
于 2013-10-29T04:36:38.447 回答