msq*_*qar 3 ios sprite-kit swift
我正在试图找出我的精灵的中心,我使用了一个足球精灵,改变了120到120的大小.我设法获得触摸位置.
获得中心的方法应该是sprite.origin.x +(sprite.width/2),但由于某种原因,我得到的值是没有意义的.因为无论我在哪里触球,触摸位置x总是小于Sprite中心,即使例如我触摸了球的右侧,因此location.x应该>而不是sprite.center. X.
这是获得球的中心点的小代码
let ballCenter = CGVectorMake(ball.position.x + (ball.frame.width / 2),
ball.position.y + (ball.frame.height / 2))
Run Code Online (Sandbox Code Playgroud)
但是当我打印出这样的结果时,总是会出现"真实"的情况.
if location.x < ballCenter.dx {
print("touched on left of ball ", location.x, location.y)
}else{
print("touched on right of ball ", location.x, location.y)
}
Run Code Online (Sandbox Code Playgroud)
这让我发疯,任何人都可以帮我理解这个吗?精灵起源不在左下角?
另外,为什么场景框架如此之小?当我使用iPhone 6S时,我看到我的屏幕宽度为375.0,屏幕高度为667.0,不应该更大吗?这太令人困惑了.
提前致谢.
默认情况下,SpriteNode的原点位于精灵的中心.如果你想获得节点的中心,只需使用let ballCenter = sprite.position- 这将为你提供CGPoint.然后,您可以使用ballCenter.x和访问x和y坐标ballCenter.y.
此外,如果您想创建一个像您目前正在使用的点ballCenter,请使用CGPointMake()而不是CGVectorMake().
| 归档时间: |
|
| 查看次数: |
1487 次 |
| 最近记录: |