首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止SKSpriteNode在SKSpriteNode外“溢出”

防止SKSpriteNode在SKSpriteNode外“溢出”
EN

Stack Overflow用户
提问于 2017-11-09 14:37:00
回答 1查看 52关注 0票数 0

我正在做一个小地图在我的游戏,我需要两件事发生。

  1. 我的地图不会像这样在指定的区域外“溢出”

  1. 我正在使一个红色的“箭头”出现在小地图上,表示玩家的位置,我需要小地图和玩家一起移动,这样小地图就总是以玩家的位置为中心(即使他去地图的边缘)。

我怎样才能迅速实现这些目标呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-10 14:44:13

由于没有代码,所以我将只讨论您需要使用的技术。

为了避免重叠,您需要使用SKCropNode创建一个裁剪区域。

背后的想法其实很简单。

代码语言:javascript
复制
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点。

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

你把玩家在瓷砖世界中的位置,除以瓷砖的宽度,y除以瓷砖的高度,这就得到了在小地图世界中的位置。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47204537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档