将 UIButton 的属性赋予 SpriteKit 中的 SKSpriteNode
Posted
技术标签:
【中文标题】将 UIButton 的属性赋予 SpriteKit 中的 SKSpriteNode【英文标题】:Giving properties of a UIButton to a SKSpriteNode in SpriteKit 【发布时间】:2016-02-07 19:57:21 【问题描述】:我想知道是否有一种方法可以将 UIButton
的属性提供给按下按钮后使按钮变暗,... 给 SKSpiteNode
因为 SKSpiteNode
有更多的自定义,因为我是使用SpriteKit
。我见过其他 1 个这样的问题,但没有一个答案有效。这是我必须创建SKSpriteNode
并检测触摸的代码:
import SpriteKit
class StartScene: SKScene
var startButton = SKSpriteNode()
override func didMoveToView(view: SKView)
startButton = SKSpriteNode(imageNamed: "playButton")
startButton.size = CGSize(width: 100, height: 100)
startButton.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2 - 50)
self.addChild(startButton)
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
/* Called when a touch begins */
for touch in touches
let location = touch.locationInNode(self)
if startButton.containsPoint(location)
// When it has been selected
//...
请帮忙。在此先感谢...安东
【问题讨论】:
【参考方案1】:我总是通过在 touches begin 和 touches end 方法中添加代码来实现这一点。在这些方法中,我只是将精灵颜色设置为黑色,然后更改其颜色混合因子。让我知道这是否适合您!
//This will hold the object that gets darkened
var target = SKSpriteNode()
//This will keep track if an object is darkened
var have = false
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent)
var first = touches.first as! UITouch
var location:CGPoint = first.locationInNode(self)
touchP = location
mouse.position = touchP
var node:SKNode = self.nodeAtPoint(location)
if let button = node as? SKSpriteNode
target = button
have = true
else
have = false
if (have == true)
target.color = UIColor.blackColor()
target.colorBlendFactor = 0.2
override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent)
if (havet == true)
target.color = UIColor.blackColor()
target.colorBlendFactor = 0
target = SKSpriteNode()
have = false
【讨论】:
感谢您的回答!由于我在我的 gameScene.swift 中,它向我显示了这个错误:方法不会覆盖其超类中的方法。有什么帮助吗? 这很奇怪。我的某些代码可能不是最新的 swift 语法。你为什么不从你的项目中删除我的代码。然后输入“override func touch”,然后让 xcode 输入其余部分。对开始触摸和结束触摸执行此操作,然后编译。如果这会导致问题,那么请回到这里,我们可以解决这个问题。如果不是,那么一切都很好,你可以复制我的代码,除了使用你的代码不是我的功能行(只需粘贴它的主体) 我修复了我刚刚遇到的错误,但我没有测试其余部分。我现在就这样做 我看到添加触摸结束可能会解决我的问题!如果我对此代码有任何问题,我会问你,但现在,很好的答案!以上是关于将 UIButton 的属性赋予 SpriteKit 中的 SKSpriteNode的主要内容,如果未能解决你的问题,请参考以下文章