【发布时间】:2015-07-31 06:57:07
【问题描述】:
我的代码有问题。当我的障碍物永远消失时,广场应该经过的“路径”有时会离开屏幕,而不是放在我想要的位置。我希望路径在屏幕宽度的 1/4 之间。我认为错误出现在宽度和 randomXPos 常量中。我怎样才能解决这个问题? (如果你想进一步解释,我可以解释更多。)
func addObstacles2() {
let obstacle2A = SKSpriteNode(imageNamed: "Obstacle")
let obstacle2B = SKSpriteNode(imageNamed: "Obstacle")
let width = UInt32(self.frame.size.width / 5)
let randomXPos = CGFloat(arc4random_uniform(UInt32(width)))
let gapWidth = square.size.width * 2
let moveDown2A = SKAction.moveByX(0, y: -self.size.width, duration: 2.5)
let repeatAction2A = SKAction.repeatActionForever(moveDown2A)
let removeObstacle2A = SKAction.removeFromParent()
let moveAndRemove2A = SKAction.sequence([repeatAction2A, removeObstacle2A])
obstacle2A.size = CGSize(width: self.frame.size.width, height: 300)
obstacle2A.position = CGPointMake(CGRectGetMidX(self.frame) + obstacle2A.size.width / 2 + gapWidth / 2 + randomXPos, self.frame.size.height * 2)
obstacle2A.zPosition = 40
obstacle2A.runAction(moveAndRemove2A)
self.addChild(obstacle2A)
let moveDown2B = SKAction.moveByX(0, y: -self.size.width, duration: 2.5)
let repeatAction2B = SKAction.repeatActionForever(moveDown2B)
let removeObstacle2B = SKAction.removeFromParent()
let moveAndRemove2B = SKAction.sequence([repeatAction2B, removeObstacle2B])
obstacle2B.size = CGSize(width: self.frame.size.width, height: 300)
obstacle2B.position = CGPointMake(CGRectGetMidX(self.frame) - obstacle2B.size.width / 2 - gapWidth / 2 + randomXPos, self.frame.size.height * 2)
obstacle2B.zPosition = 40
obstacle2B.runAction(moveAndRemove2B)
self.addChild(obstacle2B)
}
(请注意:我有一个功能已经让障碍物永远产生。)
【问题讨论】:
-
换句话说,我想要在宽度常量中的前导和尾随位置
标签: swift sprite-kit