SKScene scale + anchorPoint =奇怪的行为

时间:2013-10-18 23:17:23

标签: sprite-kit skaction

我有一个空的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中初始化了场景,我知道它具有正确的初始尺寸
  • scene的scaleMode设置为SKSceneScaleModeAspectFill,但我尝试了所有这些都无济于事

2 个答案:

答案 0 :(得分:2)

我在同一个问题上挣扎了一段时间,但我想我终于明白了。您不应该缩放场景(如果您尝试使用setScale,则会提示)。你应该调整它。

试试这个:

myScene.scaleMode = SKSceneScaleModeAspectFill;

然后在缩放时:

myScene.size = CGSizeMake(newX, newY);

答案 1 :(得分:0)

将锚点设置为

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

将场景比例模式设置为ASPECT FIT,而不是宽高比填充。

SKSceneScaleModeAspectFit