プログラミング

【Swift】Timer(タイマー)を作ろう!

Timer(タイマー)は、ゲーム等あらゆるアプリで必要になるコードです。Swiftで1秒毎にタイムカウントダウンするタイマーの作り方を紹介します。

 

こんにちは!プログラミング高校生のロットです。

今回はSwiftでタイマーを作っていきます。

 

基本的には、3箇所にコードを書いていきます。裏でタイマーを走らせるだけなら、ラベルはなくても結構です。

 

タイマー作成手順

Class内に「Timer」と「ラベル」と「時間」を用意

②didMove内にラベルを実装し、タイマーをスタートさせる

③Class内に「timerUpdate」関数を作成

 

以下にコードを示します。

 

 

 GameScene.swift
import SpriteKit
class GameScene: SKScene {
    //タイマーを用意する
    var myTimer = Timer()
    //残り時間表示用ラベルを用意する
    let timeLabel  = SKLabelNode(fontNamed: "Verdana-bold")
    // 残り時間を用意する
    var timeCount = 10
    
    override func didMove(to view: SKView) {
        // 背景色をつける
        self.backgroundColor = UIColor.white
      
        // 残り時間を表示する
        timeLabel.text = "Time:\(timeCount)"
        //timeLabelが動かないようにleft固定
        timeLabel.horizontalAlignmentMode = .left
        timeLabel.fontSize = 100
        timeLabel.fontColor = SKColor.black
        timeLabel.position = CGPoint(x:150, y:750)
        self.addChild(timeLabel)
        // タイマーをスタートする(1.0秒ごとにtimerUpdateを繰り返し実行)
        myTimer = Timer.scheduledTimer(
            timeInterval: 1.0,
            target: self,
            selector: #selector(timerUpdate),
            userInfo: nil,
            repeats: true)
    }
    
    // タイマーで実行される処理関数を作成(1.0秒ごとに繰り返し実行)
    @objc func timerUpdate() {
        // 残り秒数を 1 減らす
        timeCount -= 1
        // 残り秒数を表示
        timeLabel.text = "Time:\(timeCount)"
        // もし 0 になったら{}内を実行
        if timeCount < 1 {
            // タイマーを停止させる
            myTimer.invalidate()
        }
    }
}

 

timeCountの数字、タイマーのラベル位置や0になった時の内容は自分で書き換えて応用て下さい。

 

今回は以上です。

 

 

-プログラミング
-

© 2021 『自由の翼』PCライフ