ほとんどのゲームのように、プレーヤーが一度だけジャンプする方法を知りたいです。私はこれを試みた:swift - Jump only when landedしかし、それは実際に私のために働いていなかった理由は、プレイヤーが画面をタップしてスパムし、彼は30回のクリックごとに跳んだときに跳んだだけだったからです。下だスウィフトで一度だけジャンプする方法は?
:ここではそれがどのように見えるかであるクラスGameScene:SkSceneで{
var ableToJump = true
var Player = SKSpriteNode(imageNamed: "Spieler_rechts")
:didMoveToView(ビュー:SKView)で
Player.position = CGPoint(x: self.frame.size.width*0.1, y: Ground.frame.size.height + Player.frame.size.height)
Player.zPosition = 3
Player.physicsBody = SKPhysicsBody(rectangleOfSize: Player.size)
Player.physicsBody?.allowsRotation = false
Player.physicsBody?.affectedByGravity = true
Player.physicsBody?.restitution = 0
self.addChild(Player)
:オーバーライドFUNC更新( CURRENTTIME:NSTimeInterval)で
if Player.physicsBody?.velocity.dy == 0 {
ableToJump = true
}
else {
ableToJump = false
}
:セット、withEvent EV:touchesBegan(タッチFUNCオーバーライドENT:たUIEvent)
if ableToJump == true {
Player.physicsBody?.applyImpulse(CGVectorMake(0, 20))
}
は、それはあなたの問題を解決しましたか? – Coder1000
また、チェックしてください:http://stackoverflow.com/questions/31903934/swift-jump-only-when-landed?lq=1 – Coder1000
私は彼がブロックと衝突するたびにベースラインを変更する方法を見つけることができません:/ –