gpt4 book ai didi

Swift SpriteKit 创建一个只有三个边可以通过的边框

转载 作者:搜寻专家 更新时间:2023-10-31 22:43:10 25 4
gpt4 key购买 nike

我正在尝试创建一个用户通过投球来玩的游戏。我希望球从顶部边界和侧面边界反弹。球最初放置在底部边界,当用户触摸一个点时,球会朝那个方向移动并从边界弹回。但是,我希望球在再次触及底部边界后停止,而不是从底部边界弹开。我已经做到了,所以球会从所有边界反弹,但我希望它只从顶部和侧面反弹。如果这段代码不足以做出正确的回应,我深表歉意;我是这个论坛的新手:)

     let border = SKPhysicsBody(edgeLoopFrom: self.frame)
//create variable representing frame of gamescene

border.friction = 0
border.restitution = 1
self.physicsBody = border

这是碰撞检测的代码。 func didBegin(_ contact: SKPhysicsContact) {

    if (contact.bodyA.categoryBitMask == BodyType.ball.rawValue && contact.bodyB.categoryBitMask == BodyType.BottomBorder.rawValue){
SmallBall.isPaused = true
}
else if(contact.bodyB.categoryBitMask == BodyType.ball.rawValue && contact.bodyA.categoryBitMask == BodyType.BottomBorder.rawValue)
{
SmallBall.isPaused = true
}
}
}

最佳答案

我只是在比场景(白框)框架稍长的矩形(黄绿色轮廓框)上创建 edgeLoop,以便它悬卡在场景下方。使它具有与您当前拥有的所有相同的属性。然后我会在场景下方创建另一个 physicsBody(红色框)。然后在 didBegin(_ contact: SKPhysicsContact) 方法中检测球和红框的碰撞并停止碰撞

example

关于Swift SpriteKit 创建一个只有三个边可以通过的边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43059486/

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