防止SKSpriteNode在SKSpriteNode外“溢出”

时间:2017-11-09 14:37:01

标签: ios swift sprite-kit

我在游戏中制作小地图,我需要做两件事。

  1. 我的小地图并没有像指定部分一样“溢出”
  2. image 1

    1. 我在小地图上出现一个红色的“箭头”,代表玩家的位置,我需要小地图与玩家一起移动,这样小地图总是以玩家的位置为中心(即使他走到了玩家的边缘)地图)
    2. 我怎样才能在swift中实现这些目标?

1 个答案:

答案 0 :(得分:1)

由于没有提供代码,我将谈谈您需要使用的技术

为避免重叠,您希望使用SKCropNode创建裁剪区域。

背后的想法非常简单。

let cropNode = SKCropNode()
cropNode.maskNode = maskNode <---This is a black and white representation of what you expect the node to draw, where if alpha < .5 means do not draw, and alpha >= .5 means draw.  I would start with an SKShapeNode to achieve said effect
cropNode.addChild(miniMap)

保持小游戏相对于玩家也很简单。

让我们说你的地图是1024x1024瓦片,所以你的小地图是1024x1024点

重要的是,两个锚点都必须相同

你将玩家的位置放在图块世界中,然后将x除以图块宽度,将y除以图块高度,这样就可以获得迷你世界中的位置。

只需将迷你地图移动到刚创建的负面位置(即-x和-y),即可将迷你地图与玩家所在的位置对齐。