【问题标题】:Elegant buttons in spritekitspritekit 中的优雅按钮
【发布时间】:2017-09-28 20:58:04
【问题描述】:

我正在寻找一种优雅的解决方案来在 spritekit 中创建一个按钮,当你触摸它时它会变成灰色,当你伸出手指时它会恢复正常。我尝试了一种使用 touchesBegan、touchesMoved 和 touchesEnded 的方法,但是这需要我按名称单独调用每个按钮。我想知道是否有不同的解决方案不需要我单独调用每个节点。谢谢。

【问题讨论】:

  • 请不要谈论您的代码。 显示您的代码。

标签: swift xcode sprite-kit


【解决方案1】:

子类 SKSpriteNode。 SkNode 符合 UIResponder。

在你的子类中设置 userInteractionEnabled=true

在子类中处理所有的触摸。

【讨论】:

  • 感谢您的快速回复!是否有分步指南,因为我不确定如何让 SkNode 响应 UIResponder。
  • 响应者实现了 touchesBegan(:with:)、touchesMoved(:with:)、touchesEnded(:with:) 和 touchesCancelled( :with:) 方法。只需子类化 SKSpriteNode 并覆盖子类中的那些方法。
  • 我写了一个类,但它似乎不起作用,不知道我做错了什么: class SKButton : SKSpriteNode { override func touchesBegan(_ touches: Set, with event: UIEvent?) { self.alpha = 0.5 } override func touchesEnded(_ touches: Set, with event: UIEvent?) { self.alpha = 1.0 } }
  • 你是否在子类中将 userInteractionEnabled 设置为 true?
  • 我使用了这一行但它不起作用: override var isUserInteractionEnabled: Bool;我应该插入哪一行?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 1970-01-01
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多