SKNode屏幕上的Swift随机点

SKNode屏幕上的Swift随机点,swift,sknode,skview,Swift,Sknode,Skview,我试图在屏幕上生成一个随机点,以创建一个SKSpriteNode: let px : CGFloat = CGFloat(drand48()) let py : CGFloat = CGFloat(drand48()) let screenSize : CGRect = self.frame let location = CGPoint(x: screenSize.width*px,y: screenSize.height*py) let sprite = SKSpriteNode(imageN

我试图在屏幕上生成一个随机点,以创建一个SKSpriteNode:

let px : CGFloat = CGFloat(drand48())
let py : CGFloat = CGFloat(drand48())
let screenSize : CGRect = self.frame
let location = CGPoint(x: screenSize.width*px,y: screenSize.height*py)
let sprite = SKSpriteNode(imageNamed: "BlackCircle.png")
虽然这会在帧内正确生成点,但有时节点本身不会创建,因为帧中的位置无法正确转换为游戏场景中的位置。我使用以下方法测试位置:

print(touch.locationInNode(self))
print(touch.locationInView(self.view))
我知道x和y坐标应该有一些偏移量,但我无法计算出来。我用错CGRect了吗?我尝试使用:

UIApplication.sharedApplication().keyWindow?.frame


作为屏幕大小,但我有同样的问题。我应该使用什么样的CGRect?

您可以使用CGRectGetMaxX或CGRectGetMaxY并使用arc4random_统一,我可以毫无问题地找到CGRect的尺寸,但我似乎找不到要测量的正确CGRect,也找不到如何找到它相对于屏幕的相对位置。您可以使用CGRectGetMaxX或CGRectGetMaxY,并使用arc4random_均匀分布。我可以毫无问题地找到CGRect的尺寸,但我似乎找不到正确的CGRect来测量,也找不到如何找到它相对于屏幕的位置。
view!.frame