iphone - 在 SpriteKit 中改变方向而不是速度(swift)

标签 iphone swift sprite-kit skphysicsbody skphysicscontact

在我的游戏中,我有 2 个 Sprite ,一个球和一个 Racket 。我试图限制反射的角度,这样它就不会撞到水平方向。我正在使用这段代码来检查接触角:

            var impactX = contact.contactNormal.dx
            var impactY = contact.contactNormal.dy

            var radiansCon: Double = Double(atan((contact.contactNormal.dy / contact.contactNormal.dx)))
            var angleCon = Double(radiansCon * 180) / M_PI
            //println("Bounce Angle:\(angleCon)")

            if(angleCon < 60 && angleCon > 0) {
                println("Adjust angle Positive")
            } else if (angleCon > -60 && angleCon < 0) {
                println("Adjust angle Negative")
            }

如何在不改变速度的情况下改变球弹跳的角度?

(我是 sprite kit 的新手所以如果我遗漏任何细节请告诉我)

最佳答案

可能不是最好的方法,但现在可以用:

            var impactX = contact.contactNormal.dx
            var impactY = contact.contactNormal.dy

            var radiansCon: Double = Double(atan((contact.contactNormal.dy / contact.contactNormal.dx)))
            var angleCon = Double(radiansCon * 180) / M_PI
            if(angleCon < 60 && angleCon > 0) {
                var newX = CGFloat(0.5)
                var newY = CGFloat(0.85)
                self.ball.body.applyImpulse(CGVectorMake(newX, newY))
            } else if (angleCon > -60 && angleCon < 0) {
                var newX = CGFloat(-0.5)
                var newY = CGFloat(0.85)
                self.ball.body.applyImpulse(CGVectorMake(newX, newY))
            }

关于iphone - 在 SpriteKit 中改变方向而不是速度(swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28856637/

相关文章:

ios - 卵石 watch : Send notification to wake up iPhone (Watch -> Phone)

iphone - App Store 提交审核需要假登录吗?

swift - 在 Swift iOS 中设置设备方向

ios - 为什么 UIPickerView 显示空列表

swift - UILongPressGestureRecognizer 无法正常工作

swift - 如何在游戏场景上均匀分割两个SKSpriteNode

iphone - cocos2d 从 future 的特定时间开始粒子

android - 是否可以避免移动设备上的原生视频播放器?

ios - 如何在早上 8 点发出每日通知? ( swift 3)

ios - SpriteKit 丢失纹理