我正在尝试在屏幕上生成一个随机点来创建一个 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?