【问题标题】:Sprite Kit: SKSpriteNodes hanging off left side of screen despite (0,0) anchor pointsSprite Kit:尽管 (0,0) 锚点,SKSpriteNode 仍悬在屏幕左侧
【发布时间】:2015-02-27 12:00:51
【问题描述】:

我正在将一个 SKSpriteNodes(640 像素宽)数组直接添加到我的 SKScene:

  for (backgroundTile in backgroundTiles) {

    backgroundTile.anchorPoint = CGPointMake(0.0, 0.0);
    backgroundTile.position = CGPointMake(BG_TILE_X_POS, tilePlacementPositionY);
    [self addChild:backgroundTile];
    tilePlacementPositionY += tileHeight;

  }

(BG_TILE_X_POS 为 0.0)

但尽管 X 位置为 0.0 并且它们的锚点设置为 (0.0,0.0),但它们仍然悬在屏幕左侧 150 像素处。

我可以通过给他们一个 150 的 X 位置来弥补这一点,并且我也尝试过:

self.size = view.bounds.size;

...但这只会放大精灵的可见部分,以便它们填满屏幕;裁剪顶部精灵。

我认为我犯了一个新手错误,但是,查看文档,没有什么让我印象如此明显(我想应该是这样)。

那么,如何将精灵定位到与左边缘齐平?任何帮助将不胜感激。

谢谢。

【问题讨论】:

  • 您的场景是否也在 (0,0) 处?
  • 是的,刚刚用 NSLog 仔细检查了一遍。一切都是 0.000000。
  • 如果您在将精灵添加到场景后对精灵的位置进行 NSLog 记录,它们是否显示它们位于 x=0 处?
  • 是的。将精灵 xpos 添加到场景之前和之后记录为:0.000000
  • 所以场景在0,精灵在0,会不会和iPhone模拟器有关?还是您在使用设备?

标签: objective-c sprite-kit


【解决方案1】:

我忽略了显而易见的事情。我只创建了 x2 分辨率的占位符精灵,但将它们以 1x 分辨率存储在它们的图像集中。最后,设置:

self.size = view.bounds.size;

一切都按预期运行。

愚蠢的错误。我确信问题出在代码上,而不是资产上。

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多