gpt4 book ai didi

ios - 阻止 SKSpriteNode 离开 View (Swift)

转载 作者:搜寻专家 更新时间:2023-10-31 23:04:56 24 4
gpt4 key购买 nike

你好,我想防止 SKSpriteNode 离开屏幕,或者让节点在碰到屏幕边界时反弹回来。是否也可以在到达边界时调用函数?

如果发现这个问题Click

他在哪里使用这段代码:

let borderBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
self.physicsBody = borderBody
borderBody.friction = 0.0
borderBody.restitution = 1.0

但出于某种原因,它只会阻止我的节点(动态的)移出顶部和底部,但它能够移出侧面。

(请记住,我是 SpriteKit 和 Swift 的新手)

编辑:我找到这段代码:

extension GameScene: SKPhysicsContactDelegate {
func didBeginContact(contact: SKPhysicsContact!) {
let contactMask = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask

switch (contactMask) {
case BodyType.pipe.toRaw() | BodyType.bomb.toRaw():
println("Contact with a bomb")
if contact.bodyA.categoryBitMask == BodyType.pipe.toRaw() {
explode(pipe: contact.bodyA.node as SKSpriteNode)
} else {
explode(pipe: contact.bodyB.node as SKSpriteNode)
}
case BodyType.pipe.toRaw() | BodyType.bird.toRaw():
println("Contact with a pipe")
bird.pushDown()
case BodyType.ground.toRaw() | BodyType.bird.toRaw():
println("Contact with ground")
for actor in actors {
actor.stop()
}

let shakeAction = SKAction.shake(0.1, amplitudeX: 20)
screenNode.runAction(shakeAction)
default:
return
}

}

我读到它类似于设置类别?这段代码好用吗?

最佳答案

将物理体设置为屏幕大小

self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)

关于ios - 阻止 SKSpriteNode 离开 View (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26284021/

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