作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 SKNode
的方式有点困惑方法 convertPoint:fromNode:
和 convertPoint:ToNode:
正在工作,我已经查看了文档,但它们的作用并不那么明显。例如,这个(见下图)是我使用 convertPoint:fromNode:
做的一个小测试。黑色区域是 SKScene
背景,蓝色区域是SKSpriteNode
以 SKScene
为父级,红色区域是另一个SKSpriteNode
以蓝色 Sprite 为父级。两个 Sprite 的 anchor 由小绿点显示。我想要做的是获取红色 Sprite 的场景位置,我使用以下代码完成:
CGPoint positionInScene = [self convertPoint:[self position]
fromNode:[self redSprite]];
positionInScene = [105, 205]
[SKNode_A convertPoint: CGPoint_B toNode: SKScene_C]
[self convertPoint:[redSprite position] fromNode:redSprite]
因为我想将红色 Sprite 原点转换为场景。如果有人能对这个和它的 friend 提出一点看法和逻辑,让你的头脑转过来似乎有点笨拙
convertPoint:toNode:
将不胜感激。
最佳答案
- (CGPoint)convertPoint:(CGPoint)point fromNode:(SKNode *)node
这实质上是说:将在另一个节点的坐标系中表示的点转换为调用者的(自身)坐标系。关键是点必须在节点的坐标系中表达才能工作。如果您使用 Sprite 的位置作为点,则需要将 Sprite 的父节点作为最后一个参数传递。
示例:获取红色方块在场景坐标系中的位置:
CGPoint positionInScene = [self convertPoint:[redSprite position]
fromNode:[self blueSprite]];
blueSprite 坐标系中的 [5, 5] --> 场景坐标系中的 [105, 205]
CGPoint positionInScene = [self convertPoint:[self position]
fromNode:[self redSprite]];
[0, 0] 在 redSprite 的坐标系中 --> [105, 205] 在场景的坐标系中
CGPoint positionInRedSprite = [self convertPoint:touchLocation
toNode:[self redSprite]];
[125, 225] 在场景坐标系中 --> 在 redSprite 坐标系中的 [20, 20]
关于ios7 - SKNode convertPoint toNode & fromNode 混淆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21863918/
我对 SKNode 的方式有点困惑方法 convertPoint:fromNode:和 convertPoint:ToNode:正在工作,我已经查看了文档,但它们的作用并不那么明显。例如,这个(见下图
我是一名优秀的程序员,十分优秀!