這是我的第一篇文章,我是iOS編程新手。我正在使用Xcode 8和Swift 3來構建我的練習遊戲。我想要的是當屏幕被點擊時我想跳球,但衝動不起作用。這是我寫的代碼。Swift PhysicsBody不受Impulse影響
class GameScene: SKScene {
var footBall = SKSpriteNode(imageNamed: "sfb")
var Score = 0
var GameStarted = false
override func didMove(to view: SKView) {
self.removeAllChildren()
self.anchorPoint = CGPoint(x: 0.0, y: 0.0)
footBall.size = CGSize(width: 100, height: 100)
footBall.position = CGPoint(x: self.frame.width/2, y: self.frame.height/2)
footBall.physicsBody = SKPhysicsBody(circleOfRadius: footBall.frame.height/2)
footBall.physicsBody?.affectedByGravity = false
footBall.physicsBody?.allowsRotation = true
footBall.physicsBody?.isDynamic = true
self.addChild(footBall)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if(GameStarted == false){
GameStarted = true
footBall.physicsBody?.affectedByGravity = true
footBall.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
footBall.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 90))
}
else{
footBall.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
footBall.physicsBody?.applyForce(CGVector(dx: 0, dy: 90))
}
}
override func update(_ currentTime: TimeInterval) {
}
單擊時,球的速度變爲零,但衝動應驅動它不會發生。請幫助我解決這個問題,並忽略任何無知,因爲這是我的第一個問題,我是新手。
我不知道Swift是如何工作的,但是你是否應該將'velocity'設置爲0? – pingul
是的,但爲什麼我不知道。 –
你有沒有設置足球的質量? – pingul