gpt4 book ai didi

xcode - 一段时间后删除 SKLabel

转载 作者:行者123 更新时间:2023-11-28 06:41:52 25 4
gpt4 key购买 nike

所以我只是在 xcode 中乱搞,我遇到了一个问题。我创建了一个系统,每当用户触摸屏幕上的任何位置时,它都会在用户触摸的位置创建一个随机颜色的 SKLabel。我怎么能让创建的 SKLabel 在 5 秒后消失或从场景中移除?谢谢

import SpriteKit

class GameScene: SKScene {

func createNateLabel(touchLocation: CGPoint){

let nate = SKLabelNode(fontNamed: "Chalduster")

let randomNumber = Int(arc4random_uniform(UInt32(8)))

if randomNumber == 0 {

nate.fontColor = UIColor.cyanColor()

}

if randomNumber == 1{

nate.fontColor = UIColor.redColor()

}
if randomNumber == 2{

nate.fontColor = UIColor.blueColor()

}
if randomNumber == 3{

nate.fontColor = UIColor.purpleColor()

}
if randomNumber == 4{

nate.fontColor = UIColor.yellowColor()

}
if randomNumber == 5{

nate.fontColor = UIColor.greenColor()

}
if randomNumber == 6{

nate.fontColor = UIColor.orangeColor()

}
if randomNumber == 7{

nate.fontColor = UIColor.darkGrayColor()

}
if randomNumber == 8{

nate.fontColor = UIColor.yellowColor()

}

if nate == true{

let wait = SKAction.waitForDuration(3)

nate.runAction(wait)


nate.removeAllChildren()
}


nate.text = "Nate"
nate.fontSize = 35
nate.position = touchLocation
addChild(nate)

}

override func didMoveToView(view: SKView) {

}

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

let touch = touches.first! as UITouch
let touchLocation = touch.locationInNode(self)

createNateLabel(touchLocation)

}
}

func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}

最佳答案

代替当前的 waitForDuration 操作,使用 sequence包含 waitForDuration 的 SKAction Action 后跟 removeFromParent行动。

请注意,您当前的 removeAllChildren 调用不执行任何操作,因为您的标签节点没有要删除的子节点。

(编辑:按顺序更正组)


(由@vacawama 编辑):我觉得不需要第二个答案,所以我将其添加到@AliBeadle 的好答案中。这是一个正常运行的 createNateLabel,它会在 5 秒后使用 SKAction.sequence 删除标签。我还将颜色放在一个数组中,以便随机选择一个清洁剂:

func createNateLabel(touchLocation: CGPoint){

let nate = SKLabelNode(fontNamed: "Chalkduster")

let colors: [UIColor] = [.cyanColor(), .redColor(), .blueColor(), .purpleColor(), .yellowColor(), .greenColor(), .orangeColor(), .darkGrayColor(), .yellowColor()]

nate.text = "Nate"
nate.fontSize = 35
nate.fontColor = colors[Int(arc4random_uniform(UInt32(colors.count)))]
nate.position = touchLocation
addChild(nate)

let wait = SKAction.waitForDuration(5)
let remove = SKAction.removeFromParent()
let sequence = SKAction.sequence([wait, remove])

nate.runAction(sequence)
}

关于xcode - 一段时间后删除 SKLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37750608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com