Swiftのpitfallと同様のゲームを作成していますが、プレーヤーがジャンプしているかどうかを示すブール値を作成しようとしています。 3秒後にブール値が偽になり、プレイヤーが再び下に移動するようにします。遅延機能を使用しようとしましたが、機能しませんでした。 ありがとうございます。Swiftの一定時間後に変数の値を変更します
答えて
Player
のオブジェクトは、isJumping
というプロパティを持つコードスニペットです。 true
(didSet
を使用)に設定すると、自動的に3秒後にisJumping
からfalse
にリセットされるタイマーが開始されます。
スニペットでは、タイマーを快適に開始して操作するために、NSTimer
拡張機能を使用しないでください。 https://gist.github.com/natecook1000/b0285b518576b22c4dc8
class Player {
private var resetJumpingTimer: NSTimer?
var isJumping: Bool = false {
didSet {
resetJumpingTimer?.invalidate() // Stops the timer in case it was already started
if isJumping {
self.resetJumpingTimer = NSTimer.schedule(3.0) { [weak self] _ in
self?.isJumping = false
}
}
}
}
}
extension NSTimer {
class func schedule(delay delay: NSTimeInterval, handler: NSTimer! -> Void) -> NSTimer {
let fireDate = delay + CFAbsoluteTimeGetCurrent()
let timer = CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault, fireDate, 0, 0, 0, handler)
CFRunLoopAddTimer(CFRunLoopGetCurrent(), timer, kCFRunLoopCommonModes)
return timer
}
}
にクレジットプレイヤーはあなたがNSTimer
を作成し、ジャンプした後。
は、プレイヤーがあなたがタイマーをセットにジャンプした後、その後のグローバル変数を宣言しlet timer = NSTimer()
とvar seconds = 3
:
timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(YOUR_CLASS_NAME.updateTimer()), userInfo: nil, repeats: true)
その後方法:
func updateTimer() {
seconds -= 1
if seconds == 0 {
// Do stuff
timer.invalidate() // Stop the timer
seconds == 3 // Reset # of seconds
}
はそれを試してみると。
このXcodeを実行した後、変数ではなく定数であるタイマーについて騒がしくなり、「GameScene」でインスタンスメンバー 'updateTimer'を使用するエラーが発生します;タイプ 'GameScene'代わりに。何をここで変更するか分からない。 – Aleppi
'self.timer'か' gameScn = UIViewControllerを 'let 'とすれば? GameScene {//ここにタイマー行(selfと共に)} ' – Lawrence413
タイマーを無効にしない場合は、< =にすることができます。それは変数などのままです。
- 1. 一定の時間間隔後に列の値を変更する方法 - Cassandra
- 2. 特定の時間が経過した後に変数を変更するPython
- 3. 一定の時間が経過した後にフォントの色を変更する
- 4. Swiftは "get"メソッドで変数の値を変更しますか?
- 5. 時間の値を変数に保存して更新する
- 6. Unityは、一時変数を作成せずに値を変更します。
- 7. 時間変換機能をSwift Extensionに変更する
- 8. 新鮮なインストール時に値を変数に設定する - swift
- 9. 一定の時間内にUITextViewからテキストを変更します
- 10. OBJCの数値を時間の値に変換しますか? (時間のパーセントの代わりに時間)
- 11. Swift 4のDate()が一定時間後にカウントアップとカウントダウンタイマー
- 12. 変数変更をチェック私のプロジェクトでいくつかの時間後に
- 13. 夏時間変更後のDateTimeOffset表示
- 14. 時間の変換の整数値に
- 15. 一定期間後に変数を0に戻す方法
- 16. Swift 3グローバル変数の値を設定
- 17. 日時変数の時間部分を設定します。
- 18. 一定時間内に最初の一意の数値を返します
- 19. GameViewController(SpriteKit Swift)の変数の値を変更する
- 20. メソッドが変数を変更した後のUIの値を更新する(Swift 3)
- 21. Java Systemコンピュータ時計を変更した後の時間
- 22. Swiftの変数変更時に文字列を更新する方法
- 23. 変更時の値を変更する
- 24. 一時的にJavaScriptのグローバル変数を変更する
- 25. 24時間に変更します。 DateRangeFilter
- 26. Swiftのguardステートメントの変数を変更しますか?
- 27. 設定時間の後にモデルの属性を変更するには
- 28. 一定時間後にToggleButtonのチェックを外します。
- 29. 一定時間後にスクリプトの実行をスケジュールしますか?
- 30. ズーム後の時間間隔を変更する
動作しなかった場合でも、試したコードを表示する必要があります。 –