我有两个问题:
item.physicsBody?.velocity,但我只想在左边的方向上保持恒定的速度。let item = SKSpriteNode(color: .black, size: CGSize(width: 32, height: 16))
item.position = CGPoint(x: 600, y: self.heights[random])
item.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width:32, height: 16))
addChild(item)
item.physicsBody?.velocity = CGVector(dx: -360, dy: 0)
item.physicsBody!.affectedByGravity = falsetouchesBegan()中有上面的代码。我想向update()添加一些代码,以检测这些创建的SKSpriteNodes中的一个何时做了某件事情(例如到达指定的x位置),然后对该SKSpriteNode进行更改(例如删除它)。我是如何做到这一点的,这样我才能得到特定的SKSpriteNode?发布于 2022-06-06 21:09:05
update()中的计时器来查看自上次调用它以来已经过去了多少时间,并使用双数学计算出它的新位置。我做过这件事,而且效果很好。touchesBegan()代码在这一点上有什么相关性(您是在创建一个精灵并在触摸屏幕时设置它吗?),但是通常您可以使用enumerateChildNodes()迭代场景中的子节点数组。当有一个与标准匹配的节点(特定的x位置等)时,在节点.上执行操作。
https://stackoverflow.com/questions/72519065
复制相似问题