我的Pong版本有问题。 当我输入此代码时,球不会在屏幕上移动。 问题出在哪儿? 请帮帮我!
class GameScene: SKScene {
var ball = SKSpriteNode()
var enemy = SKSpriteNode()
var main = SKSpriteNode()
override func didMove(to view: SKView) {
ball = self.childNode(withName: "ball") as! SKSpriteNode
enemy = self.childNode(withName: "enemy") as! SKSpriteNode
main = self.childNode(withName: "main") as! SKSpriteNode
ball.physicsBody?.applyImpulse(CGVector(dx: 20, dy: 20))
let border = SKPhysicsBody(edgeLoopFrom: self.frame)
border.friction = 0
border.restitution = 1
self.physicsBody = border
}
}
答案 0 :(得分:2)
您知道此代码行
physicsBody
装置
"如果球的nil
属性不是applyImpulse()
,请在其上调用方法physicsBody
"
nil
physicsBody
,此代码会执行什么操作?对,它什么都不会做。那么,您在执行此代码的那一刻检查nil
是不是physicsBody
了吗?
根据财产physicsBody
的文件:
默认值为nil,表示该节点根本不参与物理模拟。如果提供物理主体,则在模拟场景的物理时,物理主体会更新节点的位置并旋转节点。
没有代码显示您在球对象上设置<key>NSMotionUsageDescription</key>
<string>The app uses accelerometer to increase battery efficiency by intelligently toggling location-tracking</string>
。