我正在尝试在屏幕上生成一个随机点来创建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")
虽然这会在帧内正确生成点,但有时节点本身不会创建,因为帧中的位置无法正确转换为GameScene中的位置。我用以下方法测试了职位:
print(touch.locationInNode(self))
print(touch.locationInView(self.view))
我知道x和y坐标应该有一些偏移量,但我无法弄清楚它们。我使用错误的CGRect吗?我尝试使用:
UIApplication.sharedApplication().keyWindow?.frame
和
view!.frame
作为screenSize,但我有同样的问题。我应该使用什么CGRect?