首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查节点的位置是否包含在另一个节点中?

问如何检查节点的位置是否包含在另一个节点中?
EN

Stack Overflow用户
提问于 2016-02-25 18:10:42
回答 1查看 1.2K关注 0票数 0

我试图检查一个节点是否位于另一个节点中:例如,正在移动的大矩形中的一个气球。如果气球不在长方形里,我希望气球消失。

我试过了did开始接触函数,但是它不起作用。

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-25 18:28:00

给定具有相同父SKSpriteNode(s)的的2

代码语言:javascript
复制
let spriteA = SKSpriteNode()
let spriteB = SKSpriteNode()

let parent = SKNode()
parent.addChild(spriteA)
parent.addChild(spriteB)

我们可以用这行检查spriteA的spriteA点是否在spriteB的帧(边框)内。

代码语言:javascript
复制
CGRectContainsPoint(spriteB.frame, spriteA.position)

交叉点

或者,我们也可以检查精灵写入的边界框之间的交集。

代码语言:javascript
复制
CGRectIntersectsRect(spriteA.frame, spriteB.frame)

当spriteA和spriteB没有相同的父级时

现在让我们考虑一下这个场景

代码语言:javascript
复制
let spriteA = SKSpriteNode()
let spriteB = SKSpriteNode()

let scene = SKScene()
let parent = SKNode()
scene.addChild(spriteA)
scene.addChild(parent)
parent.addChild(spriteB)

要检查spriteA.position是否在spriteB.frame中,首先我们必须将spriteA.position转换为spriteB坐标系统。

代码语言:javascript
复制
let spriteAPositionWithSpriteBCoordindates = spriteA.convertPoint(spriteA.position, toNode: spriteB)

现在我们可以调用CGRectContainsPoint函数了

代码语言:javascript
复制
CGRectContainsPoint(spriteB.frame, spriteAPositionWithSpriteBCoordindates)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35635004

复制
相关文章

相似问题

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