我希望实现的结果:我希望从存储在数组中的3个不同位置随机生成一个节点。一旦产生,我希望节点下降。随着时间的推移,我希望节点以更快的速度下降。
我目前拥有的东西:该节点在设定的位置产生并且应该像它应该的那样掉落。节点当前不会随机生成,并且它的下降速度不会增加。我写了一个数组,但它目前没有按照它应该的方式运行。
更新了代码:
var nodeDropTime:TimeInterval = 5
func fallingNodeAction(){
self.node = SKSpriteNode(imageNamed: "node 2")
self.node.zPosition = 1
self.node.physicsBody = SKPhysicsBody(circleOfRadius: self.node.size.height / 10.0)
self.node.physicsBody?.isDynamic = true
self.node.physicsBody?.allowsRotation = false
self.node.physicsBody?.affectedByGravity = true
nodeDropTime -= 1
var nodePosition = Array<CGPoint>()
nodePosition.append((CGPoint(x:400, y:475)))
nodePosition.append((CGPoint(x:450, y:475)))
nodePosition.append((CGPoint(x:500, y:475)))
self.node.physicsBody?.categoryBitMask = ColliderType.nodeCategory
self.node.physicsBody?.contactTestBitMask = ColliderType.boundary
self.node.physicsBody?.collisionBitMask = 0
let shuffledLocations = GKRandomSource.sharedRandom().arrayByShufflingObjects(in: nodePosition) as! [CGPoint]
self.node.position = shuffledLocations[0]
}
fallingNodeAction()
答案 0 :(得分:1)
对于随机位置,请导入
GameplayKit
,因此您可以在arrayByShufflingObjectsInArray
数组上使用CGPoint
,然后选择数组中的第一项作为位置。代码:
let shuffledLocations = GKRandomSource.sharedRandom().arrayByShufflingObjects(in: nodePosition) as! [CGPoint]
self.node.position = shuffledLocations[0]