我有游戏,在游戏中你的手指四处移动,应该避免碰到一些障碍。我知道如何使用碰撞,但我最近听说有一个名为body(at : point)
的功能。
我应该说我掩盖了我的障碍。因此,我无法使用contains(point)
功能。
我真的想使用body(at : point)
函数,否则我知道如何处理碰撞。
我的一些代码:
play_button = self.childNode(withName: "play_button") as! SKSpriteNode
for t in touches{
let fingerlocation = t.location(in: self)
if physicsworld.body(at : fingerlocation)
{
let so = level6(fileNamed:"level6")
so?.scaleMode = .aspectFill
self.view?.presentScene(so!, transition:
SKTransition.crossFade(withDuration: 1))
}
}
但它不起作用。
答案 0 :(得分:2)
physicsworld.body如果找到则返回SKPhysicsBody,所以你只需检查它是否存在
if let _ = physicsworld.body(at : fingerlocation)
如果您的目标是制作按钮,那么我就不会这样做。
我建议只继承SKSpriteNode并启用isUserInteractionEnable`
class Button : SKSpriteNode
{
override init()
{
super.init()
isUserInteractionEnabled = true
}
//then in your touchesBegan/touchesEnded code (wherever you placed it)
....
let so = level6(fileNamed:"level6")
so?.scaleMode = .aspectFill
scene.view?.presentScene(so!, transition:
SKTransition.crossFade(withDuration: 1))
....
}