如何检测一个精灵在某个点是不是与另一个颜色不同?
Posted
技术标签:
【中文标题】如何检测一个精灵在某个点是不是与另一个颜色不同?【英文标题】:How to detect if a sprite is a different color than another at a certain point?如何检测一个精灵在某个点是否与另一个颜色不同? 【发布时间】:2016-06-16 22:00:06 【问题描述】:我将尝试直截了当。如果有人知道如何帮助我,我会感到惊讶。
我会尽力描述我需要什么。
我有两个矩形以一定的速度从屏幕上掉下来,一旦这两个掉下来,两个新的就开始下落。您尝试将球放入的两个矩形之间存在间隙。球将是红色、绿色或蓝色。两个矩形的颜色相同,但也可以是红色、绿色或蓝色。我需要以某种方式检测,当我的球进入间隙时,球的颜色和两个矩形的颜色是否相同。这可能吗?
这是随机选择球和矩形颜色的代码。
var colorBucket = [UIColor]()
func randomColor() -> UIColor
if colorBucket.isEmpty
fillBucket()
let randomIndex = Int(arc4random_uniform(UInt32(colorBucket.count)))
let randomColor = colorBucket[randomIndex]
colorBucket.removeAtIndex(randomIndex)
return randomColor
func fillBucket()
colorBucket = [UIColor.redColor(), UIColor.greenColor(), UIColor.blueColor()]
我想不通。
我在想我需要一个 spritekitnode 附加到每个矩形,当球碰撞时会检查两种颜色是否相同。还有其他方法吗?任何帮助将不胜感激。
This is what it looks like.
【问题讨论】:
矩形和球是SKSpriteNode
(s)吗?
@appzYourLife 是的。
它们是自定义类吗?
@appzYourLife let Wall1 = SKSpriteNode(imageNamed: "Walls") 并 let Ball = SKSpriteNode(imageNamed: "Ball") 我不知道自定义类是什么意思。这就是我所拥有的
在下面看我的答案
【参考方案1】:
当然有可能!
鉴于您的 Rectangle
课程
class Rectangle: SKSpriteNode
init(color: SKColor)
let texture = SKTexture(imageNamed: "rectangle")
super.init(texture: texture, color: color, size: texture.size())
required init?(coder aDecoder: NSCoder)
fatalError("init(coder:) has not been implemented")
还有你Ball
类
class Ball: SKSpriteNode
init(color: SKColor)
let texture = SKTexture(imageNamed: "ball")
super.init(texture: texture, color: color, size: texture.size())
required init?(coder aDecoder: NSCoder)
fatalError("init(coder:) has not been implemented")
你可以只写比较两个实例
let ball = Ball(color:.redColor())
let rectangle = Rectangle(color:.redColor())
print(ball.color == rectangle.color) // true
更新
您似乎没有使用 SKSpriteNode 的子类化。
事实上你是这样直接使用 SKSpriteNode 的
let wall1 = SKSpriteNode(imageNamed: "Walls")
let ball = SKSpriteNode(imageNamed: "Ball")
在这种情况下,请记住在创建这些精灵时为它们添加颜色
wall1.color = .redColor()
ball.color = .redColor()
现在您可以按颜色比较它们
if wall1.color == ball.color
print("same color!")
【讨论】:
以上是关于如何检测一个精灵在某个点是不是与另一个颜色不同?的主要内容,如果未能解决你的问题,请参考以下文章