0
私がスクリーンに触れると、鳥は直角に回転していますが、タッチが終わったらそこにとどまります。タッチが始まったときに鳥を回転させようとしたときとタッチが終了したとき(SceneKit)
私のゲームの壁は、やはり産卵を止めました!
ここに私のコードがあります。誰かが私が間違っていることが分かっていれば私に知らせてください:D。 非常に感謝します。ありがとう
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if gameStarted == false{
gameStarted = true
bird.physicsBody?.affectedByGravity = true
let spawn = SKAction.run({
() in
self.createWalls()
})
let delay = SKAction.wait(forDuration: 2.0)
let spawnDelay = SKAction.sequence([delay, spawn])
let spawnDelayForever = SKAction.repeatForever(spawnDelay)
self.run(spawnDelayForever)
let distance = CGFloat(self.frame.width + wallPair.frame.width)
let movePipes = SKAction.moveBy(x: -distance - 50, y: 0, duration: TimeInterval(0.01 * distance))
let removePipes = SKAction.removeFromParent()
moveAndRemove = SKAction.sequence([movePipes,removePipes])
bird.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
bird.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 35))
let rotateUp = SKAction.rotate(byAngle: 0.2, duration: 0)
bird.run(rotateUp)
}
else{
if died == true{
}
else{
bird.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
bird.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 35))
}
}
for touch in touches{
let location = touch.location(in: self)
if died == true{
if restartButton.contains(location){
restartScene()
}
}
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
if gameStarted == false{
gameStarted = true
bird.physicsBody?.affectedByGravity = true
let rotateDown = SKAction.rotate(byAngle: -0.2, duration: 0)
bird.run(rotateDown)
}
}
私のコーディングを追加すれば、それが役立つでしょうか?あなたは私がtouchesEndedステートメントをすべきだと思いますか? – niX
それが役に立つなら、私はタッチの残りのコードを追加しました! @Jaybit – niX
死んだ場合の回転操作を追加する必要があった==真のステートメント。正しい方向に私を指してくれてありがとう! – niX