下面是我的didMove(toView:)
和我用來產生我的精靈節點的函數。忽略代碼的彩色塊部分,但我試圖讓球產生並從原點上升,我沒有收到代碼中的錯誤,但球沒有出現在視圖中。我非常感謝你,如果你能抽出時間審查我的問題。如果您需要更清楚地解釋我的問題,請提出問題。我想知道爲什麼我的節點不在我的GameScene中
另請注意,球最初並不在場景中,我希望在調用該功能時添加到場景中。
class GameScene: SKScene {
var greenBlock = SKSpriteNode()
var redBlock = SKSpriteNode()
var blueBlock = SKSpriteNode()
var yellowBlock = SKSpriteNode()
var greenBall = SKSpriteNode()
var redBall = SKSpriteNode()
var ballSpeed: TimeInterval = 4
override func didMove(to view: SKView) {
greenBlock = self.childNode(withName: "greenBlock") as! SKSpriteNode
redBlock = self.childNode(withName: "redBlock") as! SKSpriteNode
blueBlock = self.childNode(withName: "blueBlock") as! SKSpriteNode
yellowBlock = self.childNode(withName: "yellowBlock") as! SKSpriteNode
redBall.name = "redBall"
greenBall.name = "greenBall"
spawnRedAndGreen()
}
func spawnRedAndGreen() {
redBall.position = CGPoint(x: 0, y: -1)
redBall.zPosition = 4
addChild(redBall)
greenBall.position = CGPoint(x: 0, y: 0)
greenBall.zPosition = 4
addChild(greenBall)
let upwardsMotion = SKAction.moveTo(y: 600, duration: ballSpeed)
let redDelay = SKAction.wait(forDuration: TimeInterval(randomBetweenNumbers(firstNum: 1, secondNum: 4)))
let greenDelay = SKAction.wait(forDuration: TimeInterval(randomBetweenNumbers(firstNum: 1, secondNum: 3)))
let redSequence = SKAction.sequence([upwardsMotion, redDelay])
let greenSequence = SKAction.sequence([upwardsMotion, greenDelay])
redBall.run(redSequence)
greenBall.run(greenSequence)
}
這是我用來生成隨機數的函數...
func randomBetweenNumbers(firstNum: CGFloat, secondNum: CGFloat) -> CGFloat {
return CGFloat(arc4random())/CGFloat(UINT32_MAX) * abs(firstNum - secondNum) + min(firstNum, secondNum)
}
更新的代碼(注意仍然不工作)。
class GameScene: SKScene {
var greenBlock = SKSpriteNode()
var redBlock = SKSpriteNode()
var blueBlock = SKSpriteNode()
var yellowBlock = SKSpriteNode()
var greenBall = SKSpriteNode()
var redBall = SKSpriteNode()
var ballSpeed: TimeInterval = 4
override func didMove(to view: SKView) {
greenBlock = self.childNode(withName: "greenBlock") as! SKSpriteNode
redBlock = self.childNode(withName: "redBlock") as! SKSpriteNode
blueBlock = self.childNode(withName: "blueBlock") as! SKSpriteNode
yellowBlock = self.childNode(withName: "yellowBlock") as! SKSpriteNode
greenBall.size = CGSize(width: 30, height: 30)
greenBall.position = CGPoint(x: 0, y: 0)
greenBall.zPosition = 4
redBall.size = CGSize(width: 30, height: 30)
redBall.position = CGPoint(x: 0, y: 0)
redBall.zPosition = 4
spawnRedAndGreen()
}
func spawnRedAndGreen() {
self.addChild(greenBall)
self.addChild(redBall)
let upwardsMotion = SKAction.moveTo(y: 1, duration: ballSpeed)
let redDelay = SKAction.wait(forDuration: TimeInterval(randomBetweenNumbers(firstNum: 1, secondNum: 4)))
let greenDelay = SKAction.wait(forDuration: TimeInterval(randomBetweenNumbers(firstNum: 1, secondNum: 3)))
let redSequence = SKAction.sequence([upwardsMotion, redDelay])
let greenSequence = SKAction.sequence([upwardsMotion, greenDelay])
redBall.run(redSequence)
greenBall.run(greenSequence)
}
我也意識到,節點數由2每次上升我所說的功能,但它不會出現在屏幕
嘿感謝您的答覆,但即時通訊。除此之外,我欣賞你的反應非常。 –
他不是說物理的力量,他是說你正在使節點快速移動 – Knight0fDragon
對不起,我沒有正確地讀你的迴應我已經嘗試添加位置,但它還沒有工作。 –