gpt4 book ai didi

swift - 如果我单击 "touches began",则更改 SKSpriteNode 的颜色返回我单击的颜色

转载 作者:行者123 更新时间:2023-11-30 12:57:57 25 4
gpt4 key购买 nike

例如,如果我单击“触摸开始”,我需要更改 SKShapeNode 颜色。单击SKShapeNode颜色变为红色,再次单击颜色变为蓝色,所有单击后,颜色返回到第一个颜色,形成一个颜色循环。我怎样才能做到这一点 ? Swift 3.0问题

最佳答案

  • 按顺序创建一个包含您想要的所有颜色的数组。
  • 创建一个整数变量来跟踪当前颜色。
  • 修改 touchesBegan 上的整数,并为您的 SKShapeNode 属性分配新颜色:linesColor 和/或 fillColor,取决于你想要什么。

使用圆形作为SKShapeNode的代码示例:

// An array with all the colors you want
let colors = [UIColor.redColor(),UIColor.blueColor(),UIColor.greenColor()]
// An integer to keep track of the current color
var actualIndex = 0

var myShapeNode : SKShapeNode!

override func didMoveToView(view: SKView) {
super.didMoveToView(view)
myShapeNode = SKShapeNode(circleOfRadius: 50)
myShapeNode.position = CGPointMake(size.width/2, size.height/2)
addChild(myShapeNode)
myShapeNode.strokeColor = colors[actualIndex]
myShapeNode.fillColor = colors[actualIndex]
}

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
super.touchesBegan(touches, withEvent: event)
actualIndex = (actualIndex+1)%colors.count //Goes back to 0 when reaches colors.count

myShapeNode.strokeColor = colors[actualIndex]
myShapeNode.fillColor = colors[actualIndex]
}

关于swift - 如果我单击 "touches began",则更改 SKSpriteNode 的颜色返回我单击的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40194897/

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