.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 
} 
} 
+2

你在哪里创建Ball.physicsBody? –

正如Simone Pistecchia指出的那样,我并没有创建一个物理机构。我用下面的命令做了这个:

Ball.physicsBody = SKPhysicsBody(circleOfRadius: Ball.size.width)