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. 一定の時間が経過した後にフォントの色を変更する
- 2. GameViewController(SpriteKit Swift)の変数の値を変更する
- 3. OBJCの数値を時間の値に変換しますか? (時間のパーセントの代わりに時間)
- 4. 夏時間変更後のDateTimeOffset表示
- 5. 日時変数の時間部分を設定します。
- 6. Java Systemコンピュータ時計を変更した後の時間
- 7. 一時的にJavaScriptのグローバル変数を変更する
- 8. 一定時間後にスクリプトの実行をスケジュールしますか?
- 9. 一定時間後にToggleButtonのチェックを外します。
- 10. グローバル変数は2つの異なる関数の時間の値を変更しません
- 11. jsの変数値をコードの後ろから変更する
- 12. フラッシュ:同時に数値を変更しますか?
- 13. PHPの変換時間が整数、longまたは数値ベースの値に変換されました
- 14. キーを押した後に変数を変更しますか?
- 15. 変数のwillSetブロックに設定されている値を変更します。
- 16. 変数の変更時にブレークポイントをトリガー
- 17. node.js一定時間後にイベントを発行します
- 18. 変数のセットの文字値を数値に変更する
- 19. ImageViewを数秒間変更してUIを一時停止する
- 20. dateFromString変更後の返信なし24時間
- 21. 変数が変更されるまで一時停止
- 22. Rails:一時変数を設定しますか?
- 23. 特定の時間にアンドロイドギャラリーで画像を変更する...
- 24. 設定変更後に変数への参照が失われました
- 25. dc.js /変更する方法時間の経過後に選択した値を棒グラフに自動的に変更しますか?
- 26. 検索時のハイライト時間の変更
- 27. サブクラスの変数の値を変更しますか?
- 28. hdfsはいつディレクトリのアクセス時間と変更時間を変更しますか?
- 29. wix変更/変更中にレジストリ値を変更します
- 30. 2つの変数値の間のJqueryカウンターカウンターが一定の間隔で増加しています
動作しなかった場合でも、試したコードを表示する必要があります。 –