これは私の最初の投稿です。ここでは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