.applyimpulse无法在Xcode 8.3.3中使用SKSpriteNode()
问题描述:
我一直试图在YouTube上遵循Pong指南(我是SpriteKit的新手),当我在Xcode 8.3.3中运行我的代码时,球没有移动。该指南使用Xcode 8,所以必须改变。这是我的GameScene.swift代码:.applyimpulse无法在Xcode 8.3.3中使用SKSpriteNode()
import SpriteKit
import GameplayKit
class GameScene: SKScene {
var Ball = SKSpriteNode()
var comPaddle = SKSpriteNode()
var mainPaddle = SKSpriteNode()
override func didMove(to view: SKView) {
Ball = self.childNode(withName: "Ball") as! SKSpriteNode
mainPaddle = self.childNode(withName: "mainPaddle") as! SKSpriteNode
comPaddle = self.childNode(withName: "comPaddle") as! SKSpriteNode
Ball.physicsBody?.isDynamic = true;
Ball.physicsBody?.applyImpulse(CGVector(dx: 20, dy: 20))
let border = SKPhysicsBody(edgeLoopFrom: self.frame)
border.friction = 0
border.restitution = 1
self.physicsBody = border
}
override func update(_ currentTime: TimeInterval) {
// Called before each frame is rendered
}
}
答
正如Simone Pistecchia指出的那样,我并没有创建一个物理机构。我用下面的命令做了这个:
Ball.physicsBody = SKPhysicsBody(circleOfRadius: Ball.size.width)
你在哪里创建Ball.physicsBody? –